有没有人与Rijndael加密合作?如何与Rijndael进行加密?

发布于 2025-02-07 03:23:38 字数 3815 浏览 1 评论 0原文

我正在使用加密扑面包。我写了下面的代码来加密数据。但是我找不到预期的结果。

  String encrypterAESdata({String? data}){ 
    final key = Key.fromUtf8(aesKey);
    final iv = IV.fromUtf8(aesKey);
    final encrypter = Encrypter(AES(key, mode: AESMode.cbc, padding: "PKCS7" ));
    final encrypted = encrypter.encrypt(data!, iv: iv);
    return encrypted.base64;
  }

测试数据:

{
  "remittanceNoPrefix": "IT",
  "adjustedDCAmount": 0,
  "beneAccNo": "01912163589",
  "benePhone": "01912163589",
  "beneAccTypeID": 199,
  "beneAmount": "4900",
  "beneBankName": "BKASH (MOBILE ACCOUNT)",
  "beneBankBranchID": 31637,
  "beneBankID": 1135,
  "beneBranchName": "BKASH (ANY AGENT POINT)",
  "beneBrnAddress": "ANYWHERE",
  "beneCountryID": 23,
  "beneCurrencyID": 15,
  "beneDocID": null,
  "beneDocNo": "",
  "beneficiaryID": 497656,
  "beneficiarySurname": "TEST",
  "beneficiaryName": "TEST",
  "relationID": null,
  "benePayeeModeID": 11,
  "subCompanyBranchID": 151886,
  "companyID": 76,
  "subCompanyID": 367,
  "debitCardID": null,
  "discountedComm": 0,
  "encashedPoint": 0,
  "encashedPointAmount": 0,
  "equiAmount": 50,
  "ofrdAmount": 50,
  "equiCommission": 3,
  "ofrdCommission": 3,
  "taxAmount": 0,
  "cardCharge": 0,
  "instrumentDetail": "",
  "instrumentTypeID": "120",
  "maturityDate": "2019-02-14T00:00:00.000Z",
  "issueDate": "2019-02-14T00:00:00.000Z",
  "othrRcvdAmount": 0,
  "othrRcvdCommission": 0,
  "pDRate": 98,
  "purposeDetail": "FAMILY HELP",
  "purposeID": 2,
  "aMLRemBhvClsID": null,
  "aMLRemBhvClsValue": 0,
  "aMLOpVoteClsID": null,
  "aMLOpVoteClsValue": 0,
  "aMLCoopClsID": null,
  "aMLCoopClsValue": 0,
  "aMLOpTypeClsID": null,
  "aMLOpTypeClsValue": 0,
  "fldPsfx": "",
  "cdType": "BNKXFR",
  "cdNo": "",
  "cdExp": "",
  "cdSecCode": ""
}

预期结果:

/qDmHF87PF/E6Bmwiot9roUrXwEvykmHzCLMbKq2YnVUuHDGqXqMWlJ8ZhCzMBcqppkpvjY6NkN8bUUp0fYZz1Pl6I5E/qtIaxbvrMOU+wRDpLvV1Ymd+o+J1fe0PLAmC5SUXsj1MyRCPG0LJ1cRjHR7F4HnWJZoGOCmeh3nZrzGSkdVQ3Xya8c8eK0RiAkcgUABpwptY77yknR1WNEV6HoOnOxdPt6vo/D0oba17jp5coonFCcVUsmZ3PacRmCzVuhbvqaFJgCoykBZOkzsSUgl792F1QP9995q/S/hmFJZv2JHyNKeOGLJ55uMSVHYTPOvqgAn7VZ2CkiTBQSaDJpWzLF/3HpQR9jjgY3n5cOGqJyPbWiLz0N4jWeOJ6TUnyBd8K5PhtOY8C+uh5GkeyAWrieEFbX1Q5pytaUKcqDBTOWjF3945ImVSoviZYHDaPgJ8f/1V3FuAdH3VM+zpzlBAmVwtcjfZZzfzdDSOUgYeU98P+JjWfqX8bQu5vXBSCnkMqEENyM85z9ISoi+oYKnsYNt6sPKOf2lVIxj+9vA9G1+fCfNTH1a7Tg2yszSHA3yTNy1QLTqQY9fCS0A/vIgJPjHYJPjjLNK4CA0L1mZje8Rkh9eha8BD61/6YPAJFAfiU6eNK8uC5gToMSdOTt2auj2i3yuPx8sLyTBe8MOI3TOCoE/xC2yqCUxuUqH1ppn2TKlNjULy2ChiJG5o3cTC6b7trAaNzn+B8220TkaM1+k5RDvELd6+GcxdteO43oECs2eoXYF28z+V/kGHAhQeBBMKEF5sAaD3Qnq+IX4uHOjc6ngu41IbKnvrMaDL+o1qjfrLILQAPgYYHSzzp/C7Ov1Yzym0bR8dp7g+ATFj+1sgNOQWyzVr7v74stncu0aREBPJFTn1SkoajFJ2XD40+65IHw6ZKxfeXT2ArKueZrXPFYI/j5FW1jVfyM66FW6prmJ33PfadQ1OLMRS84FKhv3xfXP20hca/mMDXWzVOfhMDhPQRx0txL6Qh6AqS984UgM6CTcWIGL7UC7UMDtEYrcsLOw0y7LR0vD0acH+d4NESC7AzyDaN4//otzaYyOeNvYCraDWx0DpPyJCQfQSQKctzELHWgcb8hHgMup42ewu4+cMml42eTwVjrbKAYcSTYeimb0aVa9LlObOoUBFBrudzhhyXueYd1+RK83k8BuCyxo9jsk7oDlsngm4j8HdOvp2TJm4gFs1wTDR4lQmuqVNMdorJT6iO7f/tEuOMTb6lXueM7XWDlQ9vbUYDlG8py9K3Tfd6cPny2L7uzdCk2OnnmEpYmVM3nzhgY1wYz/TwS3sWAYriRDJ1WhXKoCWC7iXn+rKq1QwctxatFiz14zYtU41ucXFM0uiU76jPYQ8q3UsGHMvoL7pbAii4qW05QEcDuGjI/kJgtTf8KWZz+tk7ii3nnh+nrh//1hiC8sC1GJ7/PIdvPj4yXWv0wG8XONfl43MIRTD1n43ePkNQaYyeGFmcZc+BJjPTZ6Z7KZjACbaeS8YZlAE8EAOVGNzq4oZFpFt/+VJcMIa17LtCrjTqcDuDFggjO633Z3ISLnAZJeYoaXtFWaehdZVCimTh0xCnON63jlmyrZoL38cCqFfBiEcJ4O04Pfqob6FEhgTEk4vhQLV7n/O4LhsR9yyfnipY2IrZHVOIGYDJfnw3D4NrpKjBRxq2q/ihTLYzQCpmyXaFVNmgIsv37fdgk2TYZ6leyVs+jDdUwogluqzbTEGOOqK4ZqvLgntEYEFjGEP4Ztjwu48BuLvsT2vH/zuKMW5L0WtZYn6Ytq2sFDJ2aoFSWvUwnz4w5lrrD1dmOOJJGpnn3aNAWcwx5DZk7tCFOp0D6zGtajLM7pMA==

键:

**********

IV:

*********

I am using the encrypt Flutter package. I wrote the code below to encrypt data. But I could not find the expected result.

  String encrypterAESdata({String? data}){ 
    final key = Key.fromUtf8(aesKey);
    final iv = IV.fromUtf8(aesKey);
    final encrypter = Encrypter(AES(key, mode: AESMode.cbc, padding: "PKCS7" ));
    final encrypted = encrypter.encrypt(data!, iv: iv);
    return encrypted.base64;
  }

Test Data:

{
  "remittanceNoPrefix": "IT",
  "adjustedDCAmount": 0,
  "beneAccNo": "01912163589",
  "benePhone": "01912163589",
  "beneAccTypeID": 199,
  "beneAmount": "4900",
  "beneBankName": "BKASH (MOBILE ACCOUNT)",
  "beneBankBranchID": 31637,
  "beneBankID": 1135,
  "beneBranchName": "BKASH (ANY AGENT POINT)",
  "beneBrnAddress": "ANYWHERE",
  "beneCountryID": 23,
  "beneCurrencyID": 15,
  "beneDocID": null,
  "beneDocNo": "",
  "beneficiaryID": 497656,
  "beneficiarySurname": "TEST",
  "beneficiaryName": "TEST",
  "relationID": null,
  "benePayeeModeID": 11,
  "subCompanyBranchID": 151886,
  "companyID": 76,
  "subCompanyID": 367,
  "debitCardID": null,
  "discountedComm": 0,
  "encashedPoint": 0,
  "encashedPointAmount": 0,
  "equiAmount": 50,
  "ofrdAmount": 50,
  "equiCommission": 3,
  "ofrdCommission": 3,
  "taxAmount": 0,
  "cardCharge": 0,
  "instrumentDetail": "",
  "instrumentTypeID": "120",
  "maturityDate": "2019-02-14T00:00:00.000Z",
  "issueDate": "2019-02-14T00:00:00.000Z",
  "othrRcvdAmount": 0,
  "othrRcvdCommission": 0,
  "pDRate": 98,
  "purposeDetail": "FAMILY HELP",
  "purposeID": 2,
  "aMLRemBhvClsID": null,
  "aMLRemBhvClsValue": 0,
  "aMLOpVoteClsID": null,
  "aMLOpVoteClsValue": 0,
  "aMLCoopClsID": null,
  "aMLCoopClsValue": 0,
  "aMLOpTypeClsID": null,
  "aMLOpTypeClsValue": 0,
  "fldPsfx": "",
  "cdType": "BNKXFR",
  "cdNo": "",
  "cdExp": "",
  "cdSecCode": ""
}

Expected Result:

/qDmHF87PF/E6Bmwiot9roUrXwEvykmHzCLMbKq2YnVUuHDGqXqMWlJ8ZhCzMBcqppkpvjY6NkN8bUUp0fYZz1Pl6I5E/qtIaxbvrMOU+wRDpLvV1Ymd+o+J1fe0PLAmC5SUXsj1MyRCPG0LJ1cRjHR7F4HnWJZoGOCmeh3nZrzGSkdVQ3Xya8c8eK0RiAkcgUABpwptY77yknR1WNEV6HoOnOxdPt6vo/D0oba17jp5coonFCcVUsmZ3PacRmCzVuhbvqaFJgCoykBZOkzsSUgl792F1QP9995q/S/hmFJZv2JHyNKeOGLJ55uMSVHYTPOvqgAn7VZ2CkiTBQSaDJpWzLF/3HpQR9jjgY3n5cOGqJyPbWiLz0N4jWeOJ6TUnyBd8K5PhtOY8C+uh5GkeyAWrieEFbX1Q5pytaUKcqDBTOWjF3945ImVSoviZYHDaPgJ8f/1V3FuAdH3VM+zpzlBAmVwtcjfZZzfzdDSOUgYeU98P+JjWfqX8bQu5vXBSCnkMqEENyM85z9ISoi+oYKnsYNt6sPKOf2lVIxj+9vA9G1+fCfNTH1a7Tg2yszSHA3yTNy1QLTqQY9fCS0A/vIgJPjHYJPjjLNK4CA0L1mZje8Rkh9eha8BD61/6YPAJFAfiU6eNK8uC5gToMSdOTt2auj2i3yuPx8sLyTBe8MOI3TOCoE/xC2yqCUxuUqH1ppn2TKlNjULy2ChiJG5o3cTC6b7trAaNzn+B8220TkaM1+k5RDvELd6+GcxdteO43oECs2eoXYF28z+V/kGHAhQeBBMKEF5sAaD3Qnq+IX4uHOjc6ngu41IbKnvrMaDL+o1qjfrLILQAPgYYHSzzp/C7Ov1Yzym0bR8dp7g+ATFj+1sgNOQWyzVr7v74stncu0aREBPJFTn1SkoajFJ2XD40+65IHw6ZKxfeXT2ArKueZrXPFYI/j5FW1jVfyM66FW6prmJ33PfadQ1OLMRS84FKhv3xfXP20hca/mMDXWzVOfhMDhPQRx0txL6Qh6AqS984UgM6CTcWIGL7UC7UMDtEYrcsLOw0y7LR0vD0acH+d4NESC7AzyDaN4//otzaYyOeNvYCraDWx0DpPyJCQfQSQKctzELHWgcb8hHgMup42ewu4+cMml42eTwVjrbKAYcSTYeimb0aVa9LlObOoUBFBrudzhhyXueYd1+RK83k8BuCyxo9jsk7oDlsngm4j8HdOvp2TJm4gFs1wTDR4lQmuqVNMdorJT6iO7f/tEuOMTb6lXueM7XWDlQ9vbUYDlG8py9K3Tfd6cPny2L7uzdCk2OnnmEpYmVM3nzhgY1wYz/TwS3sWAYriRDJ1WhXKoCWC7iXn+rKq1QwctxatFiz14zYtU41ucXFM0uiU76jPYQ8q3UsGHMvoL7pbAii4qW05QEcDuGjI/kJgtTf8KWZz+tk7ii3nnh+nrh//1hiC8sC1GJ7/PIdvPj4yXWv0wG8XONfl43MIRTD1n43ePkNQaYyeGFmcZc+BJjPTZ6Z7KZjACbaeS8YZlAE8EAOVGNzq4oZFpFt/+VJcMIa17LtCrjTqcDuDFggjO633Z3ISLnAZJeYoaXtFWaehdZVCimTh0xCnON63jlmyrZoL38cCqFfBiEcJ4O04Pfqob6FEhgTEk4vhQLV7n/O4LhsR9yyfnipY2IrZHVOIGYDJfnw3D4NrpKjBRxq2q/ihTLYzQCpmyXaFVNmgIsv37fdgk2TYZ6leyVs+jDdUwogluqzbTEGOOqK4ZqvLgntEYEFjGEP4Ztjwu48BuLvsT2vH/zuKMW5L0WtZYn6Ytq2sFDJ2aoFSWvUwnz4w5lrrD1dmOOJJGpnn3aNAWcwx5DZk7tCFOp0D6zGtajLM7pMA==

Key:

**********

IV:

*********

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拥醉 2025-02-14 03:23:38

我从来没有发现pointcastle有用的“包装器”软件包。他们只是以添加“简单性”的名义添加混淆层。直接使用基础软件包通常更容易。

import 'dart:convert';
import 'dart:typed_data';

import 'package:pointycastle/export.dart';

void main() {
  final k = 'Nec_uK_2@!6_CebD';
  final key = utf8.encode(k) as Uint8List;
  final iv = key;

  print(key);

  final cipher = PaddedBlockCipherImpl(
    PKCS7Padding(),
    CBCBlockCipher(AESEngine()),
  )..init(
      true,
      PaddedBlockCipherParameters(
        ParametersWithIV(KeyParameter(key), iv),
        null,
      ),
    );

  final data = utf8.encode(pt) as Uint8List;
  final ct = cipher.process(data);

  print(data.length);
  print(ct.length);
  print(base64.encode(ct));
}

final pt = '''{
  "remittanceNoPrefix": "IT",
  "adjustedDCAmount": 0,
  ...
  "cdExp": "",
  "cdSecCode": ""
}''';

I never find the 'wrapper' packages around pointcastle useful. They just add layers of obfuscation in the name of adding 'simplicity'. It's often easier to just use the underlying package directly.

import 'dart:convert';
import 'dart:typed_data';

import 'package:pointycastle/export.dart';

void main() {
  final k = 'Nec_uK_2@!6_CebD';
  final key = utf8.encode(k) as Uint8List;
  final iv = key;

  print(key);

  final cipher = PaddedBlockCipherImpl(
    PKCS7Padding(),
    CBCBlockCipher(AESEngine()),
  )..init(
      true,
      PaddedBlockCipherParameters(
        ParametersWithIV(KeyParameter(key), iv),
        null,
      ),
    );

  final data = utf8.encode(pt) as Uint8List;
  final ct = cipher.process(data);

  print(data.length);
  print(ct.length);
  print(base64.encode(ct));
}

final pt = '''{
  "remittanceNoPrefix": "IT",
  "adjustedDCAmount": 0,
  ...
  "cdExp": "",
  "cdSecCode": ""
}''';
作死小能手 2025-02-14 03:23:38

容易的peasy

import 'package:cryptography/cryptography.dart';

String s = "i want to encrypt this init";

String key = 'AA­èìýUn}a…ópŒ¹%J'yL4ßK,£½';

List<int> listint= utf8.encode(s);

Uint8List listUint= Uint8List.fromList(key.codeUnits);


AesGcm algorithm = AesGcm.with256bits();

SecretKey secretKey = await algorithm.newSecretKeyFromBytes(listUint);


    SecretBox secretBox = await algorithm.encrypt(
      listint,
      secretKey: secretKey,
    );

    print('Nonce: ${secretBox.nonce}');
    print('Ciphertext: ${secretBox.cipherText}');
    print('MAC: ${secretBox.mac.bytes}');


    Uint8List listEncryptedUint = secretBox.concatenation();
    print('this is the encrypted payload init: '+listEncryptedUint .toString());

easy peasy

import 'package:cryptography/cryptography.dart';

String s = "i want to encrypt this init";

String key = 'AA­èìýUn}a…ópŒ¹%J'yL4ßK,£½';

List<int> listint= utf8.encode(s);

Uint8List listUint= Uint8List.fromList(key.codeUnits);


AesGcm algorithm = AesGcm.with256bits();

SecretKey secretKey = await algorithm.newSecretKeyFromBytes(listUint);


    SecretBox secretBox = await algorithm.encrypt(
      listint,
      secretKey: secretKey,
    );

    print('Nonce: ${secretBox.nonce}');
    print('Ciphertext: ${secretBox.cipherText}');
    print('MAC: ${secretBox.mac.bytes}');


    Uint8List listEncryptedUint = secretBox.concatenation();
    print('this is the encrypted payload init: '+listEncryptedUint .toString());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文