Answers
1和2其实在一定程度上是互斥的
3自增主键是最简单有效的
4这个和生成关系不大,在记录里保存生成时间就行了
5可以把ID明文组合到最终字符串里
楼主的这个问题我曾经仔细思考过,想要同时保证唯一性和不可猜解,最简单的思路:
1.使用一个每次生成时都不同的存在作为变量,如:时间戳,自增主键;
2.加入某些只有你知道的数据进行混淆,比如你学号的MD5值;
3.然后通过MD5,SHA1使之无法被还原,在处理后的结果中选取你要的长度作为唯一字符串;
这个思路的问题是MD5或者SHA1都可能发生碰撞,如果不进行检查的话可能出现重复。当然,可能这种碰撞造成的重复在你网站倒闭之前都不会发生。
复杂一点的思路:可以把MD5和SHA1替换成某种加密算法,如AES,DES,可以保证唯一性,代价是长度最少也会和所用加密算法的最小块一致。
总结:推荐简单思路
eamconn
answered 10 years, 10 months ago