mysql md5()函数重复_如何处理MySQL函数MD5的输入?

我在理解如何处理MySQL4.1.22中MD5函数的输入时遇到了一些问题。基本上,我无法重新创建特定值组合的MD5sum进行比较。我想这和输入数据的格式有关。

我已经建立了一个表,其中有两列类型为double(方向和高度)+第三列,用于存储MD5和。

使用安装脚本,我将数据添加到方向和高程字段+使用以下语法创建校验和:

insert into polygons (

direction,

elevation,

md5sum

)

values (

(select radians(20.0)),

(select radians(30.0)),

( md5( (select radians(20.0)) + (select radians(20.0)) ) )

)

结果是:

0.349065850398866, 0.523598775598299, '0c2cd2c2a9fe40305c4e3bd991812df5'

稍后,我将存储的MD5sum与新计算的MD5sum进行比较,新计算的创建使用

md5('0.349065850398866' + '0.523598775598299')

我得到以下校验和:

'8c958bcf912664d6d27c50f1034bdf34'

如果我将传递的“字符串”中的最后一个小数从9改为8

0.523598775598298

我得到与以前存储的校验和相同的校验和,

'0c2cd2c2a9fe40305c4e3bd991812df5'

. 从8到0的最后一个小数的任何值都会给出相同的校验和。

使用

BINARY, (md5( (select BINARY(radians(20.0))) + (select BINARY(radians(20.0))) )

在安装脚本中,创建与原始“运行时计算”相同的校验和。

值得一提的是,原始方法适用于我拥有的所有其他行(55)

我想我是用了一种有点奇怪的方式使用这个函数,但是我不确定更好的方法,所以为了找到更好的方法,我觉得我需要理解为什么电流会失效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值