gpt4 book ai didi

mysql - 将 'crypto'模块生成的哈希值保存到mysql

转载 作者:行者123 更新时间:2023-11-29 13:34:16 25 4
gpt4 key购买 nike

我在保存、获取和比较 mysql DB 中的加密哈希时遇到问题。

如上所述,我使用“加密”模块来生成哈希(该哈希包含特殊字符)。

我的表使用“utf8_unicode_ci”排序规则。由于这些特殊字符,我在将哈希值保存到数据库时遇到了麻烦。所以,我尝试使用这个方法:

exports.real_escape_string = function real_escape_string(str) {
return str.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, function (char) {
switch (char) {
case "\0":
return "\\0";
case "\x08":
return "\\b";
case "\x09":
return "\\t";
case "\x1a":
return "\\z";
case "\n":
return "\\n";
case "\r":
return "\\r";
case "\"":
case "'":
case "\\":
case "%":
return "\\" + char; // prepends a backslash to backslash, percent,
// and double/single quotes
}
});
};

这有效,并且确实设法将哈希保存到数据库,但由于某种原因,当将其保存到数据库时,它更改了哈希本身。我正在使用著名的 mysql 模块来访问 mysql 数据库并对其执行操作:

var mysql = require('mysql');

我还能尝试什么?

最佳答案

保存到DB时使用base64,然后读取时进行解码。

关于mysql - 将 'crypto'模块生成的哈希值保存到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18959524/

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