我正在开发一个密码学应用程序,它将在我国使用。我试着抬头看看是否有任何算法支持西里尔字母,但我没有发现。你知道什么吗?主流算法(如AES)能与西里尔字母一起工作吗?
发布于 2016-02-03 16:52:38
不,AES是一个只能在16个字节的块上操作的分组密码。可以在操作方式中安全地使用AES对任意位/字节大小的明文进行操作。
因此,您只需将您的西里尔字母编码为任何位或字节编码。Unicode --将代码点指定为大量字符--指定最有可能的一式两份: UTF-8编码。
对于多达127的代码点,UTF-8与ASCII完全相同。之后,根据代码点的值使用更多的字节;较高的代码点需要更多的字节。
因此,您可以按照以下步骤进行加密:
为了解密:
备注:
发布于 2016-02-03 09:46:57
现代密码算法是以字节或甚至比特来指定的,而不是字符。不管您加密的数据是代表拉丁文还是西里尔字母、图片或音频数据,还是其他任何东西,对加密算法来说都无关紧要;它所看到的只是一堆字节。
这实际上意味着:您必须修复一些编码(现在UTF-8非常常见),将您的字符转换成一个字节字符串,然后可以像往常一样由任何加密实现处理。
发布于 2016-02-03 09:40:55
现代密码算法工作在字符串位,独立于这些字符串是如何解释在任何特定的应用程序。
https://crypto.stackexchange.com/questions/32421
复制相似问题