实体字符转换,同样变量密码加盐MD5后生成的加密字符串不同解决办法 (原)
我是首次登录系统自动生成一个密码,格式大概是: abcd1234& 这种格式 , 比如加密规则就是一个 MD5()
然后,首次账号密码登录,输入密码 abcd1234&,一直提示密码错误,我输出了一下MD5('bacd1234&')值,然后拿出数据库MD5的字符串比较,就是不一样,但是我生成随机密码后加密是没问题的.
问题出在: var_dump() 一下,我们登录表单提交的密码,和我们系统生成的密码字符串,会发现一模一样的字符串,类型也都是string,但是长度不一样,因为我输入密码有特殊字符&,这种类似字符
经过html处理的跟我直接代码生成字符串的存在一个转化问题,必须把它们替换为相应的实体字符才可以正常显示,比如空格、<、>等。我把系统生成随机密码的特殊字符''&'',改成
'&'就好了
HTML常用字符实体一览: