小弟我要做一个防伪系统。现在初步抛弃了随机数随机产生的方法。我觉得还是通过加密解密的方法来做这个事情的好。否则的话对数据库的要求太高了,对系统的要求也比较高。我基本的思路是:选定一个明文,比如xxyyzz
然后附加一些无用的随机数,然后加密
然后再把加密以后的数据转换成十进制,
用户查询的时候,先解密,然后删除那些无用的数据
仅验证xxyyzz是否正确
这样数据库只要保存一个明文就好了
一个明文可以对应好多个不同的查询密码程序我尝试了一下,还下载了各种加密算法,比如DES,RAS之类的
但是我发现,DES之类的算法,就算是明文只有5、6位数字
加密以后长度也好长啊,再转换成十进制数字,简直不得了了不知道有没有这样的对称加密算法:
1.明文只要改动一个字母,密文就会变化很多(好像大多数经典的算法都能做到这。但是有些算法也是不行的。比如网上有些算法,明文XXYYZ1和XXYYZ2,密文也和明文差不多,就最后的几位数字有一些变化。这样对用户来说,一眼就能看出来,这些查询密码是通过计算的来的)
2.加密以后的密文,长度不能超过明文太多。这点对我很重要。比如说,明文是6位数字,加密后密文不超过8位。