我正在寻找一种安全的对称密钥加密算法,能够同时兼容JavaScript和Java。
我已经尝试实现了一种算法,但是遇到了一些编码问题。
我正在寻找一种安全的对称密钥加密算法,能够同时兼容JavaScript和Java。
我已经尝试实现了一种算法,但是遇到了一些编码问题。
你试图编写自己的加密算法?这违反了安全领域所坚守的一切原则。实际上,解释加密工作原理的真正教程,会非常担心人们由于不理解其中的数学原理而弄乱事情,我曾经在其中看到过这种情况:我曾经尝试过实现一个,但遇到了一些编码问题。
如果你不理解加密,例如,“什么是具有密码学安全性的伪随机数生成器”以及常见的攻击方式,那么你就不应该去做。
如果你不理解侧信道攻击等内容,那么你也不应该去做。
如果你不理解加密的内容,并且至少读过两本相关书籍,那么你没有必要去实现它。
加密并不是一个神奇的黑匣子,即使在不触碰任何打包解决方案中的代码的情况下,很容易出错。
那你应该做什么呢?忘记JS加密吧。我知道,我自己尝试过。这是浪费时间。从我的错误中吸取教训。
获取SSL证书,SSL是我们在服务器与客户端之间加密传输消息的最佳方式。它几乎是最安全的。如果你面对能够击败SSL的对手,相信我,你的基于JS的加密也已经被破解了。
一旦它到达服务器,就可以进行加密以确保其不会被篡改。其他任何方式都是浪费时间。
此外,请阅读这些书籍:
![这个是免费的][4] [![这个是收费的][5]][5] (来源: [schneier.com](https://www.schneier.com/images/book-ce-150w.jpg))然后当你理解它们后,回来对我大喊大叫,告诉我为什么我错了,不理解在客户端上需要JS来进行加密。
有一个JS写的出色的DES算法实现(同样支持3DES),我经常使用。周一我会在办公室上传链接并准备好。在通过base64编码传输后,这个算法可以与.Net/Mono(内置)、Java(内置)和PHP(mcrypt)完美配合使用。
找到了链接,但两个都失效了:http://www.shopable.co.uk/des.html 和 http://www.netdealing.com。我已经将其上传至 http://pastebin.com/KbRsWKJY。