我正在寻找一个良好的许可(BSD/MIT 或 PD)C DES 实现,具有最小的运行时内存使用量(即最小量的读写内存,并且最好也小的代码/表大小)。速度不是问题;事实上,在某些方面,越慢越好,因为它提供了一些针对暴力登录尝试的自然防御。
我见过的所有传统实现都会对大表进行延迟/运行时初始化,这是我试图避免的。我很高兴将表放在 static const
中二进制文件中的数据,事实上,这就是我现在已经部分实现的,但我想知道是否有任何现有的实现可以更好地最小化表的大小以牺牲性能为代价,使二进制文件不会太大(大约 50kb 的表)。
注意:是的,DES 很糟糕。预期的用例是为了实现 crypt
处理传统密码登录的函数。
最佳答案
以 MIT license 为例以及 libtomcrypt 的版本对于所有目的都是完全免费的。
第一个版本似乎也对表进行了延迟初始化,而它们是 libtomcrypt 中的静态常量。但是 libtomcrypt 似乎为您提供了速度与大小的编译标志,在较大的表前面有一个 #ifndef LTC_SMALL_CODE
,也许这可以解决您的问题?
关于c - 寻找良好的小型 DES 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770745/