gpt4 book ai didi

web-applications - 如何使用带有 tweetnacl-js 的密码加密 key ?

转载 作者:行者123 更新时间:2023-11-29 16:03:51 26 4
gpt4 key购买 nike

https://github.com/dchest/tweetnacl-js强烈推荐给我。

我有一个项目,团队希望在 ID 上显示编码为 base64 的 key 对。当然,他们不想只显示 key ,而是存储它的加密版本。像这样的……

// do the encryption
let keyPair = tweetnacl.sign.keyPair();
let publicKey = tweetnacl.util.encodeBase64(keyPair.publicKey);
let signature = tweetnacl.util.encodeBase64(tweetnacl.sign.detached(tweetnacl.util.decodeUTF8(certData), keyPair.secretKey));
let secretKey = tweetnacl.util.encodeBase64(keyPair.secretKey);
let encryptedSecretKey = CryptoJS.AES.encrypt(secretKey, this.props.data.password).toString();

有人建议我不要使用 CryptoJS。有没有更好的方法来仅使用 tweetnacl 来做到这一点?

谢谢。

最佳答案

tweetnacl 有一个称为 secretbox 的对称加密实现。您可以像使用 AES 一样加密任何您想要的内容,包括您的 key 。

伪代码:

var smkey = stringToUint8Array(keystring); // must be 32 bytes, pad it if you have to
var nonce = nacl.randomBytes(nacl.box.nonceLength);
var encryptedSecretKey = nacl.secretbox(secretKey, nonce, smkey);

然后您可以将加密的 Uint8Array 转换为字符串或 base64 并使用它。

关于web-applications - 如何使用带有 tweetnacl-js 的密码加密 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36243029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com