1

このJava復号化メソッドをNodejsに変換するタスクを取得しましたが、このJavaのものを本当に理解していません。私は特にと混同していPBEWithMD5AndDESます。Nodejsでこの復号化を再現する方法を説明してください。

private void readFile() {
  try {
    Cipher cipher = getCipher(2, "secret");
    DataInputStream dis;

    dis = new DataInputStream(new CipherInputStream(someInputStream, cipher));

    String field1 = dis.readUTF();
    String filed2 = dis.readUTF();
    dis.close();
  } catch (Exception e) { }
}

private Cipher getCipher(int mode, String password) throws Exception {
  Random random = new Random(43287234L);
  byte[] salt = new byte[8];
  random.nextBytes(salt);
  PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, 5);

  SecretKey pbeKey = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(new PBEKeySpec(password.toCharArray()));
  Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
  cipher.init(mode, pbeKey, pbeParamSpec);
  return cipher;
}

私はこれと同じようなことをしなければならないと思います。

var inputStream = fs.createReadStream("file");
var decipher = crypto.createDecipher("des", "secret", new Buffer("0C9D4AE41E8315FC", "hex"));

inputStream.pipe(decipher).pipe(process.stdout);
4

1 に答える 1

3

PBEWithMD5AndDES暗号化アルゴリズムを指します。Java Cryptography Extension (JCE) リファレンス ガイドから:

PBEWithMD5AndDES : RSA Laboratories、「PKCS #5: Password-Based Encryption Standard」、バージョン 1.5、1993 年 11 月で定義されているパスワード ベースの暗号化アルゴリズム。他の暗号モードまたはパディング スキームでは使用できません。

node.js で実際の復号化を行うには、いくつかのコードを記述する必要がある場合があります。これは、始めるのに役立つ可能性のあるRuby での実装です。

于 2013-03-20T17:58:44.373 に答える