我想使用格式保留加密将数字加密/解密为具有相同长度的字符串(只有数字和/或大写字母).但我没有找到实施步骤.那么,任何人都可以为C#2.0提供WORKING样本吗?
举个例子,
如果我加密固定长度的明文,如99991232(有或没有固定密钥),那么密码应该像23220978或ED0FTS.如果加密字符串的长度小于纯文本,那么它也可以.但密文长度不得大于纯文本,密文必须具有固定长度.
根据您的问题,我假设纯文本是数字,其中密文可以是字母数字.因此,制作编码方案非常容易.这使得您的格式保存不那么严格,这可以利用(如果您的纯文本也是字母数字,这将不起作用).
首先,找到2的幂大于您拥有的离散值的数量,例如,在数字情况下,您有10个离散值 - 因此您将使用16(2 ^ 4).为此创建一个'BaseX'编码方案(在本例中为Base16),并使用它将纯文本解码为二进制.
因此给出明文:
1,2,3,4
我们编码为:
0001-0010 0011-0100
然后,您可以通过保留长度的密码运行它(长度保留密码的一个示例是计数器模式下的AES).假设您获得以下值:
1001-1100 1011-1100
使用'BaseX'编码器对此进行编码,在我们的例子中,我们将获得:
9,C,B,C
长度相同.我为你扔了一个样本(这里有点大的粘贴).
| 归档时间: |
|
| 查看次数: |
4124 次 |
| 最近记录: |