哎,近迷上了个叫“jsmd5”的小玩意儿,说白了就是JavaScript版的MD5加密。一开始觉得这玩意儿挺高大上的,什么加密算法、不可逆变换,听起来就让人头大。不过,玩儿着玩儿着,发现其实也没那么难,还挺有意思的。
我这人比较懒,不喜欢看那些密密麻麻的代码,所以一开始找了个现成的库,叫啥js-spark-md5,网上随便一搜就能找到。下载下来是个spark-md5.min.js的文件,直接丢到我的项目文件夹里就完事了。这玩意儿用起来贼简单,就一句话的事儿:md5('你的字符串'),然后它就给你吐出一个32位的MD5值,妥妥的。
当然,这只是简单的用法,我后来又琢磨着怎么把它用到我的小游戏中。我做了个简单的用户登录系统,用户名密码什么的,直接用jsmd5加密之后再传到服务器,感觉安全系数蹭蹭往上涨。虽然我知道,MD5现在已经被破解了,彩虹表啥的,但对于我这种小打小闹的游戏来说,足够用了。
为了方便,我还自己做了个小记录了一些常用的MD5值,免得每次都要重新计算。
字符串 | MD5值 |
---|---|
e10adc3949ba59abbe56e057f20f883e | |
password | 5f4dcc3b5aa765d61d8327deb882cf99 |
admin | 21232f297a57a5a743894a0e4a801fc3 |
hello world | b10a8db164e0754105b7a99be72e3fe5 |
其实,一开始我连MD5是什么都不知道,就觉得它是个很神秘的东西。后来查了查资料,才知道它是一种单向散列算法,也就是说,你可以用它把一个字符串转换成一个固定长度的MD5值,但是你却不能从MD5值反推出原来的字符串。这就好比你把东西放进一个只能单向进入的盒子,你只能把东西放进去,却不能拿出来。
当然,这只是个简单的解释,具体原理我还没完全搞懂,毕竟我不是搞密码学的。不过,对于我来说,能用就行了。
后来,我又发现了一些更高级的玩法,比如可以结合其他的加密算法,比如SH来提高安全性。不过,这些对我来说就有点超纲了,暂时还没开始研究。
下载安装步骤嘛,其实很简单。就像我前面说的,直接下载js-spark-md5.min.js这个文件,然后在你的HTML文件中引入它:
(记得把js/spark-md5.min.js改成你实际的文件路径)然后你就可以在你的JavaScript代码中使用md5()数了。
版本信息嘛,我用的js-spark-md5好像是新的版本,具体版本号我忘了,不过你可以去GitHub上看看,上面有详细的信息。
说到这儿,我想起来,我还尝试过用纯JavaScript代码实现MD5算法,但是那代码看着就让人头大,各种位运算、循环,我看了几行就放弃了。还是用现成的库比较方便,毕竟我的目的是玩游戏,而不是研究密码学。
现在,我的小游戏里已经用上了jsmd5加密,感觉安全性提升了不少。当然,这只是我个人水平有限,只能做到这个地步,高手们肯定有更多更牛的玩法。
不过,话说回来,jsmd5虽然简单易用,但是安全性也不是的。所以,在实际应用中,还是要根据具体情况选择合适的加密算法,并且注意其他的安全措施。
我想问问大家,你们在游戏中都用过哪些加密算法?有什么好的经验或者技巧可以分享一下吗?