首页 > 解决方案 > RSA 私钥的 Dart 加密

问题描述

我正在使用 dart pointycastle 库(基于 java bouncycastle)编写一个小库。

这些库不包含任何将私钥写入磁盘的方法。

所以我需要先用密码加密后将密钥写入磁盘。

我采取的方法是:

这是否被认为是存储私钥的安全方式。

我发现我用来将密码短语延长到 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));
  }

这足够吗?

标签: dartencryptionbouncycastlepointycastle

解决方案


推荐阅读