C#中的可逆哈希

时间:2018-03-08 22:34:45

标签: c# security encryption hash

在我们开始之前,我想说“哈希”有点像我真正想要的用词。

基本上,我有一个程序返回一个92字符串(这是加密安全的)我想缩短,这就是为什么我不能想到任何其他单词,但我需要能够扭转它。

所以我正在寻找一些方法,我可以使用92个字符的base64字符串并将其转换为更短的字符串(n),然后将其反转。

所以编码就像(n) + (hash function) = (s) 然后我将能够使用(s) + (hash function) = (n)对其进行解码。我不需要这个是安全的,因为我在生成字符串时处理了它。

我正在使用Base65536,但这主要是为了一个快速的笑话,因为这对于实际用户来说是不切实际的。

TL; DR - 我需要一个哈希(或加密)函数,它将从长字符串中生成短字符串。

为了澄清,我不需要压缩文件大小,我需要一个较短的字符串来返回给用户。

1 个答案:

答案 0 :(得分:-1)

存储二进制数据的最节省空间的方法是将其存储为字节。你可以让它更短的唯一方法是通过压缩。但是92个字符不会太多。

对于Base64:有些情况下我们强制通过不支持随机二进制数据的介质传输二进制数据。主要是Textbase媒体(电子邮件,XML文件,HTML)。因此我们使用Base64作为编码二进制数据的方法。虽然它是无损的,但存储效率较低。实际上,每个输入字节需要Base64输出中的1 1/4字节。使用Base64绝不是理想的情况,更像是一种诡计。