1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import 'dart:convert';
- import 'package:dart_des/dart_des.dart';
- import 'package:dart_sm/dart_sm.dart';
- import 'package:encrypt/encrypt.dart';
- import 'package:hex/hex.dart';
- import 'package:pointycastle/asymmetric/api.dart';
- class JsonRpcEncryptConfig {
-
- final bool enable;
-
- final String encryptMode;
-
- final String encryptKey;
- JsonRpcEncryptConfig({
- this.enable = false,
- this.encryptMode = "sm2",
- this.encryptKey = "",
- });
- Map<String, dynamic> toJson() {
- return {
- "enable": enable,
- "encryptMode": encryptMode,
- "encryptKey": encryptKey,
- };
- }
- }
- abstract class JsonRpcEncryptUtils {
-
- static const _RSA_PUB_KEY = "-----BEGIN PUBLIC KEY-----\n"
- "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAln7CnpiqYguFVRUL5oCdFAQL6ypYQdnd84XN++mRvjkdjtpbCdGEj6S2U2Vn+Bt+vHL5bvUk6gtTx5FpV0Z8kDvDgBRweIvtJTZLx6ZjbI7habxclW9aB3b0SW3zuFuHMteDivTI0lkZ6y0QRiG7nMZYsi18IjReBssXsx38fpgIBAHIbkb98wtEffBbrbwfdxQnfc8r9Hy7iIbfVP0h7nR0FDMu1vYqi5PsnYDw681iO6GNxV6VHA6wcWkMokLZn51OP+OQmomJPElWfPgLDp1AxBeRhuHFlXslcE550bzWUs3iBylTgXwdTGqppCjCXhSLBiOnTc0ggHpDQHh17wIDAQAB\n" +
- "-----END PUBLIC KEY-----";
-
- static String rsaEncrypt(String message) {
- final publicKey = RSAKeyParser().parse(_RSA_PUB_KEY) as RSAPublicKey;
- final encrypter = Encrypter(RSA(publicKey: publicKey));
-
- final encrypted = encrypter.encrypt(message);
- final encryptedText = encrypted.base64;
- return encryptedText;
- }
-
- static String desDecrypt(String ciphertext, String key) {
-
- const List<int> iv = [1, 2, 3, 4, 5, 6, 7, 8];
- final ivHexString = String.fromCharCodes(iv);
- final ivString = utf8.encode(ivHexString);
- final DES desCBC = DES(
- key: key.codeUnits,
- mode: DESMode.CBC,
- iv: ivString,
- paddingType: DESPaddingType.PKCS7,
- );
- final ciphertextHexDecoded = HEX.decode(ciphertext);
- final decryptedBytes = desCBC.decrypt(ciphertextHexDecoded);
- final decryptedString = utf8.decode(decryptedBytes);
- return decryptedString;
- }
-
- static String sm2Encrypt(String message, String key) {
-
- const int cipherMode = 1;
-
- String encryptData = SM2.encrypt(message, key, cipherMode: cipherMode);
-
- encryptData = "04$encryptData";
- return encryptData;
- }
-
- static String sm4Decrypt(String cipherText, String key) {
- return SM4.decrypt(cipherText, key: key);
- }
- }
|