假设我有这个字符串文字(用作键),例如:
'h''我'我'是''''''''''''''''
它被传递到这样的应用程序(随机):
't''我''''''我'是''''c''''
什么是解析这个(在for循环中)的算法,然后尝试解密数据,然后检查已知偏移的值,如果为false则开始循环。
问题:算法平均需要多长时间 - 考虑到它是使用AES 256密钥? (时间不是问题,只是好奇)
谢谢大家。
重要编辑 - 由于我的应用程序不兼容,因此无法使用STD功能或任何CRT。
答案 0 :(得分:3)
使用 n 项循环遍历集合的所有排列的算法具有O( n !)的复杂度。将算法应用于包含9个项目的示例集意味着9! = 362880次迭代,这可能是可行的。
加密密钥是如何从9个字符的字符串派生的?设计这个系统的人似乎对密码学一无所知。
关于置换迭代算法,参见例如这个:Stepping through all permutations one swap at a time
答案 1 :(得分:2)
如果你可以通过强力发现字符串,那么任何其他人都可以,因此加密就没有意义。