加密用32个字符键解密12位数文本

时间:2011-10-07 12:18:07

标签: c# encryption fixed

我正在寻找一种通过32个字符长的密钥加密和解密12位数文本的方法。 密码必须是固定长度(32或更小)。有可能吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

当然。使用好的分组密码(如AES),您可以选择将文本加密为块(输出将是32个字符的块),并且您将使用256位加密或使用加密的nonce对文本进行异或(输出将是一个12字节的密文),你将有96位加密。

只需谷歌搜索AES和C#应该提供一个现成的实现。请务必使用正确的nonce(在某些情况下也称为initialization vector)。

要为您的目的使用哈希(请参阅对此答案的评论),请按以下步骤操作:

散列:

  1. 计算HASH = hash(FROM_DATE + TO_DATE + SECRET)

  2. 输出FROM_DATE + TO_DATE + HASH

  3. +表示隐身,SECRET仅为您所知。

    如果仅使用大写字母和数字,则至少 25个字符。

    验证

    1. 将字符串拆分为FROM_DATE + TO_DATEHASH

    2. 验证HASH = hash(FROM_DATE + TO_DATE + SECRET)

    3. SHA-256应该可以很好地发挥作用。