gpt4 book ai didi

javascript - 如何根据内容生成唯一代码?

转载 作者:行者123 更新时间:2023-12-03 00:20:29 25 4
gpt4 key购买 nike

您正在输入的图片。对于您添加的每个字符(包括特殊字符,如 @ . # ¤ % & ~ 等),将根据内容生成唯一的代码。不是哈希!此唯一代码只有 20 个字符长。

示例

  • 这只是一个示例 变为 H59S7Y54CI6M7S2XX8A9
  • 这是另一个示例 变为 C77KE95HIAJ7VN582758
  • 您好!我是一个示例字符串! 变为 Y8BV572SF8U76RXVB944
  • 这只是一个示例 变为 H59S7Y54CI6M7S2XX8A9

为什么我想要这个

我正在开发一个项目,访问者可以登录自己的帐户(如果他们有的话)。一旦他们输入电子邮件地址和密码,就会根据该字符串(在隐藏输入中)生成一个唯一的代码,以便网站可以识别用户并从数据库中获取正确的数据。

我为什么想要它?

我使用 256 位 AES 加密数据库中的所有内容,每个用户都有自己的加密 key 。为了识别输入的电子邮件地址和密码(在首次登录之前使用网站加密 key 进行加密),此唯一代码(基于字符串)将识别登录。因此,使用网站加密 key 来识别登录是不可能的。这就是我的问题。

这可能是一个安全风险,因为唯一的代码将存储在 MD5 或 Whirlpool 的散列数据库中,但我不知道如何以其他方式识别登录。如果您知道更好的方法,请告诉我。

那么,我该如何实现这一点呢?甚至可以做到吗?

我知道如何生成不基于内容的唯一代码(例如生成密码),但我不知道如何生成基于内容的唯一代码。

最佳答案

我不知道目的,但直接回答你关于如何生成基于内容的唯一代码的问题,你可以有这样的东西

function symmetricEncode(content){
var output = [];
for (var i=0; i<content.length; i++){
output.push(String.fromCharCode(~ content[i].charCodeAt()));
}
return output.join("");
}

var string = "Hey you there";
var code = symmetricEncode(string);

console.log("string to code: ", string);
console.log("code: ", code);
console.log(typeof code);
console.log("decoded code: ", symmetricEncode(code));

这个代码不仅仅是一个哈希,因为你可以解码它,这意味着它是唯一的,也就是说,对于每个输入,你都会得到一个唯一的输出

其他类型的哈希值(例如将所有字符相乘)do not fulfil these criteria ,因为对于两个不同的输入,您可能会得到相同的输出(虽然可能,但可能性很小),而不是纯粹可逆的。 ~ 引用 bitwise not运算符。

关于javascript - 如何根据内容生成唯一代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54333045/

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