加密算法

3

你知道一种不太难实现但也不太简单的好的加密算法吗?


3
作为学习经验还是实际使用?(如果是实际使用,答案是:不要自己写,而要使用现有的库。) - James McNellis
“太难”和“太容易”是什么意思? - user2100815
4
@James McNellis:这是一篇高中论文。 - BlackShadow
@unapersson:对于“太难”,我的意思是实现、理解、学习等方面都太难了。对于“太容易”,我的意思是我不想要一个平凡的算法,只需要几行代码就能实现的。 - BlackShadow
1
对于一篇文章,你可能想从凯撒密码和维吉尼亚密码开始。然后再转向现代密码,比如RSA(它相当简单,但需要基本的模运算知识)和AES。 - BlueRaja - Danny Pflughoeft
太容易了:不存在的。如果加密强度很高,只有在易于实现时才是好的。 - sehe
4个回答

8

看这个关于AES的精彩漫画。它解释了算法的加密背景,你可以通过在不同语言中编写高性能实现来进行练习。


6

我唯一的疑问在于我对andand所做的评论中已经解释了。 - BlackShadow
@BlackShadow:如果你在编程方面很擅长,那么你可以在2小时内学会RSA,并且可以在6小时内实现它(最多)。DES也几乎一样。我们在大学时完成了这些和其他密码学问题。 - Nawaz

3
如果你只是想找点东西来编写以获取学习经验,我一直喜欢高级加密标准。 NIST的标准文件提供了编写和测试代码所需的所有细节。

我以为自己很擅长编程,但其实对那个算法一无所知…… 在你的意见里,我能否在每天工作2-3小时的情况下,在3-4天内学会并实现该算法? - BlackShadow
@BlackShadow:理解标准中的一些数学概念可能需要一些时间,但是一旦你理解了,编程就不难了。一旦你理解了标准,你肯定可以在规定的时间内编写代码。如果你考虑到研究标准的时间,你应该将那个时间加倍。如果有任何问题,请在SO上发布,你肯定会得到一些帮助。 - andand

0

我喜欢 RC5 的简单性。比如 AES 更容易实现,虽然不够强大,但仍是一个很好的加密算法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接