首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cyrillic加密算法

Cyrillic加密算法
EN

Cryptography用户
提问于 2016-02-03 09:38:47
回答 3查看 1.1K关注 0票数 1

我正在开发一个密码学应用程序,它将在我国使用。我试着抬头看看是否有任何算法支持西里尔字母,但我没有发现。你知道什么吗?主流算法(如AES)能与西里尔字母一起工作吗?

EN

回答 3

Cryptography用户

回答已采纳

发布于 2016-02-03 16:52:38

AES可以处理西里尔字母?

不,AES是一个只能在16个字节的块上操作的分组密码。可以在操作方式中安全地使用AES对任意位/字节大小的明文进行操作。

因此,您只需将您的西里尔字母编码为任何位或字节编码。Unicode --将代码点指定为大量字符--指定最有可能的一式两份: UTF-8编码。

对于多达127的代码点,UTF-8与ASCII完全相同。之后,根据代码点的值使用更多的字节;较高的代码点需要更多的字节。

因此,您可以按照以下步骤进行加密:

  • 字符在UTF-8中编码您的西里尔文本,结果是纯文本。
  • 加密明文,导致密文
  • 可能使用基数64对密文进行编码,从而生成编码的密文。

为了解密:

  • 可能使用基64解码编码的密文,从而生成(二进制)密文。
  • 解密密文,生成明文。
  • 字符解码纯文本,导致您的西里尔文本

备注:

  • 对于现代密码来说,明文和密文是二进制的,尽管它们的名字;
  • 字符编码(例如,UTF-8)将字符字符串转换为字节;
  • 编码(例如基64)将字节转换为可打印字符;
  • 对于更大的文本,您可能希望查看流,以上所有这些都可以使用流来完成;
  • 如果您想发送一些东西,您还需要一个认证标签(MAC或HMAC)的密文。
票数 5
EN

Cryptography用户

发布于 2016-02-03 09:46:57

现代密码算法是以字节或甚至比特来指定的,而不是字符。不管您加密的数据是代表拉丁文还是西里尔字母、图片或音频数据,还是其他任何东西,对加密算法来说都无关紧要;它所看到的只是一堆字节。

这实际上意味着:您必须修复一些编码(现在UTF-8非常常见),将您的字符转换成一个字节字符串,然后可以像往常一样由任何加密实现处理。

票数 11
EN

Cryptography用户

发布于 2016-02-03 09:40:55

现代密码算法工作在字符串位,独立于这些字符串是如何解释在任何特定的应用程序。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/32421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档