rsa加密
注意rsa格式 RSA/ECB/PKCS1Padding
#rsa加密解密 fast_rsa: ^3.8.3
var pkcs12 = '''MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIs**************PD4DQIDAQAB'''; var publicKey = _transformPem(pkcs12, isPublic: true); var password = await RSA.encryptPKCS1v15("1234abcd", publicKey);
字符串生成pem字符串 下面的工具里是 PKCS8
https://github.com/Fitem/flutter_util_code/blob/master/lib/encrypt_utils.dart
下面的方法str传入下面格式的字符串 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ*************+HFpaInhbf05O4OfpAuMwq+FPD4DQIDAQAB
/// 把秘钥从字符串转成PEM文件格式 /// [str]秘钥,字符串 /// [isPublic]是否是公钥 static String _transformPem(String str, {bool isPublic = true}) { var begin = isPublic ? '-----BEGIN PUBLIC KEY-----\n' : "-----BEGIN PRIVATE KEY-----\n"; var end = isPublic ? '\n-----END PUBLIC KEY-----' : '\n-----END PRIVATE KEY-----'; // 如果已经是PEM格式的秘钥,直接返回 if (str.contains(begin) && str.contains(end)) return str; // 去掉空格和换行 str.replaceAll(' ', '').replaceAll('\n', ''); int splitCount = str.length ~/ 64; List<String> strList = []; for (int i = 0; i < splitCount; i++) { strList.add(str.substring(64 * i, 64 * (i + 1))); } if (str.length % 64 != 0) { strList.add(str.substring(64 * splitCount)); } return begin + strList.join('\n') + end; }
在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……

浙公网安备 33010602011771号