为什么MySQL上的SHA1使用plus运算符计算不同的哈希值?

时间:2014-09-02 15:49:12

标签: mysql hash operators sha1 concat

在mysql上执行sha1()时,我会得到不同的结果,具体取决于字符串的连接方式。

使用加号运算符查询

SELECT SHA1("test"+"6JjSrnm5HX4MiNmJpC0M8VMAj4No6Bv9")

导致哈希c1dfd96eea8cc2b62785275bca38ac261256e278

使用CONCAT()

查询
SELECT SHA1(CONCAT("test", "6JjSrnm5HX4MiNmJpC0M8VMAj4No6Bv9"))

导致哈希17b80b7eb824d0796c6203a231ac2b2d5f41f949

为什么MySQL的表现如此?

查询在PHPMyadmin中执行

1 个答案:

答案 0 :(得分:1)

我做了这个小测试:

set @tester = "test"+"6JjSrnm5HX4MiNmJpC0M8VMAj4No6Bv9"; 
select @tester;

这会显示数字6。 通过这种方式,我们可以观察与concat的区别以及sha1计算不同的原因。