如何解决RSA私钥的Dart加密
我正在使用dart pointycastle库(基于Java bouncycastle)编写一个小库。
这些库不包含任何用于将私钥写入磁盘的方法。
因此,我需要先使用密码对密钥进行加密后再将其写入磁盘。
我采用的方法是:
- 将键的每个组成部分(模量,指数...)编码为base64字符串(从bigint转换)
- 将每个以base 64编码的组件写入一个通用字符串
- 使用AES加密公共字符串
- base64对结果进行编码
- 将基数为64的编码结果写入文件。
这是存储私钥的安全方法吗?
我找到了我用来将密码短语扩展到128位的这段代码:
Key stretch(int desiredKeyLength,{int iterationCount = 100,Uint8List salt}) {
if (salt == null) {
salt = SecureRandom(desiredKeyLength).bytes;
}
final params = Pbkdf2Parameters(salt,iterationCount,desiredKeyLength);
final pbkdf2 = PBKDF2KeyDerivator(Mac('SHA-1/HMAC'))..init(params);
return Key(pbkdf2.process(_bytes));
}
这够吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。