格式保留加密示例

Par*_*tel 4 c# encryption

我想使用格式保留加密将数字加密/解密为具有相同长度的字符串(只有数字和/或大写字母).但我没有找到实施步骤.那么,任何人都可以为C#2.0提供WORKING样本吗?

举个例子,

如果我加密固定长度的明文,如99991232(有或没有固定密钥),那么密码应该像23220978或ED0FTS.如果加密字符串的长度小于纯文本,那么它也可以.但密文长度不得大于纯文本,密文必须具有固定长度.

Jon*_*son 6

根据您的问题,我假设纯文本是数字,其中密文可以是字母数字.因此,制作编码方案非常容易.这使得您的格式保存不那么严格,这可以利用(如果您的纯文本也是字母数字,这将不起作用).

首先,找到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

长度相同.我为你扔了一个样本(这里有点大的粘贴).