在mysql上执行sha1()
时,根据字符串的连接方式,我得到不同的结果。
用加号运算符查询
SELECT SHA1("test"+"6JjSrnm5HX4MiNmJpC0M8VMAj4No6Bv9")
导致哈希
c1dfd96eea8cc2b62785275bca38ac261256e278
用
CONCAT()
查询SELECT SHA1(CONCAT("test", "6JjSrnm5HX4MiNmJpC0M8VMAj4No6Bv9"))
导致哈希
17b80b7eb824d0796c6203a231ac2b2d5f41f949
为什么MySQL会那样表现?
查询在PHPMyadmin中执行的位置
最佳答案
我做了这个小测试:
set @tester = "test"+"6JjSrnm5HX4MiNmJpC0M8VMAj4No6Bv9";
select @tester;
结果显示数字
6
。这样,我们可以观察与
concat
的区别以及sha1
的计算为何不同。关于mysql - 为什么MySQL上的SHA1使用加号运算符计算不同的哈希值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25627435/