如何用nodejs 解密 通过golang加密的文件

如何用nodejs 解密 通过golang加密的文件,第1张

以下代码采用AES192,128的类似

var crypto = require('crypto')var key = crypto.randomBytes(192/8) // 替换成自己需要的keyvar iv = crypto.randomBytes(128/8) // 替换扒信成自己春租轮型扒需要的ivvar algorithm = 'aes192'function encrypt(text){var cipher = crypto.createCipheriv(algorithm, key, iv)

cipher.update(text) return cipher.final('hex')

}function decrypt(encrypted){var decipher = crypto.createDecipheriv(algorithm, key, iv)

decipher.update(encrypted, 'hex') return decipher.final('utf8')

}var content = 'hello'var crypted = encrypt('hello')console.log( crypted ) // 输出:1b87be446405ff910cd280ae6aa0423fvar decrypted = decrypt( crypted )console.log( decrypted ) // 输出:he

棘轮算法用于通信双方基于共享密钥交换加密消息桥铅。通常,通信双方将先使用某种密钥协商协议(例如 X3DH1)以协商共享密钥。此后,通信双方即可使用双棘轮算法发敏携好送接收加密消息了。

通信双方将为每一个双棘轮消息派生出新的密钥,使得旧的密钥不能从新的密钥计算得到。通信双方还将在消息中附上迪菲-赫尔曼公钥值。迪菲-赫尔曼计算的结果将被混入派生出的密钥中,使得新的密钥不能从旧的隐仔密钥计算得到。这些特性将在某一方的密钥泄漏后保护此前或此后的加密消息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8230558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存