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 (将#修改为@)