我一直在阅读加密算法,并尝试在不使用任何库的情况下通过研究实现它们。但是,我发现很难理解它们的工作原理。
我特别关注的算法是
triple des-使用3个密钥,第1个进行加密,第2个进行解密,第三个进行再次加密
RSA-使用大的正整数来生成加密和解密,例如e,d和n
AES-使用固定位和密钥大小块的替换置换。
我已经在网上搜索并遇到了诸如cryptoJS,OpenPGP和cryptico之类的许多库,但是由于它们是新手,因此发现很难遵循这些代码。
我了解它们背后的主要思想,但是发现很难编写代码,请有人指导我-在实现时是否可以使用或参考任何伪代码/伪算法。
答案 0 :(得分:2)
我已经在Java上实现了AES和DES。以我的经验,如果您了解理论,那么一切都会非常简单。您可以获得麻省理工学院或斯坦福大学的密码学课程。无论如何,首先您应该了解理论。之后,Github上的实现太多了。您甚至可以使用Youtube 来查看算法如何对样本数据进行加密。
说实话,我喜欢波鸿鲁尔大学的资源。 AES / DES是第三章,第四章。这是官方网页link.,他们已经录制了视频讲座和免费书籍,它们由Springer发行,名为“ 理解密码学”。
P.S BouncyCastle是非常受欢迎的图书馆。它在Java上实现得很好。您也可以看一下。