最近遇到了一个奇葩的问题,采用 mysql 内置 md5 算法加密的数据与 php 程序 md5 算法加密的数据不一致。具体如下:
其他部门提了一个小需求,有一批 excel 格式的数据,要做个小的在线查询功能,通过身份证号查询其他信息,但是其中身份证要加密。
解决思路把 excel 数据导入到 mysql 中,通过内置 md5 函数加密身份证列,然后把前台提交的身份证号用 php 进行 md5 加密,查询数据库,取出相关信息就可以了。
做起来很简单,可是运行起来出错,发现 mysql 内置 md5 算法加密的数据与 php 程序 md5 算法加密的数据不一致。
最开始想的是编码问题和数据库字段类型设计的问题,检查了一遍均没解决。
后来仔细看了一遍导入的原始数据才发现,由于 excel 中存在的制表符、换行符导致导入到 mysql 中的数据前后有特殊空白字符,那数据都不一样了,md5 的结果当然不一样了!!!
声明:本文为原创文章,版权归主机之家测评所有,欢迎分享本文,转载请保留出处!