gpt4 book ai didi

javascript - Node : node module for encryption/decryption?

转载 作者:太空宇宙 更新时间:2023-11-04 00:57:44 26 4
gpt4 key购买 nike

我希望网站 (A) 仅在访问者来自特定的其他网站 (B) 时才有效。

最初,我想到使用document.referrer ,但显然它很容易被伪造。我猜,除了将 key 从网站 A 传递到网站 B 之外,我别无选择。

这两个网站都在 node 上运行服务器。我已经传递了两个参数(比如 param1 n param2 ),所以认为这个 key 以及两个站点之间共享的一些公共(public)字符串(认为称为 private key )会在站点上生成某种加密代码A,将其添加为第三个参数并发送到站点 B。

在站点 B 中,我将解密第三个参数(使用 private key )并检查它是否与 param1 匹配。和param2 ,然后允许通过 else 返回 401

我以前从未做过这样的事情(与安全相关的事情),这种方法正确吗?是否有任何 Node 模块已经提供这种加密和解密?最后,对于创建私钥有什么建议吗?

最佳答案

我写了一个article关于如何使用 crypto 来完成此操作Node.js模块:

aes_加密.js:

var crypto      = require('crypto'),
cipher_seed = 'some_random_characters';

var encrypt = function(text) {
var cipher = crypto.createCipher('aes-256-cbc', cipher_seed),
crypted = cipher.update(text, 'utf8', 'hex');

crypted += cipher.final('hex');

return crypted;
};

var decrypt = function(text) {
var decipher = crypto.createDecipher('aes-256-cbc', cipher_seed),
decrypted = decipher.update(text, 'hex', 'utf8');

decrypted += decipher.final('utf8');

return decrypted;
};

module.exports.encrypt = encrypt;
module.exports.decrypt = decrypt;

用法:

var AES = require('path_to_aes_encryption.js');

var data = {
name: 'Catalin',
surname: 'Munteanu',
address: 'Romania'
};

// Encryption
var encrypted_data = AES.encrypt(JSON.stringify(data));

// Decryption
var decrypted_data = JSON.parse(AES.decrypt(encrypted_data));

如果您计划在一台服务器上进行加密并在另一台服务器上进行解密,请不要忘记使用相同的 cipher_seed

关于javascript - Node : node module for encryption/decryption?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28939279/

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