什么是具有优秀avalanching特性的简单、可逆、非加密字符串密码函数?

3
我需要实现一对函数,用于混淆/解混淆字符串,形式如下:
  • string cipher(string plainText, string secret)

  • string decipher(string cipherText, string secret)

我希望它们简洁易懂且易于实现,例如只需大约一页或更少的代码,并且不需要任何特殊依赖项。我需要在C#和纯JavaScript浏览器中实现此功能。
这不需要具备加密安全性;如果很容易被攻击,则完全可以。
最重要的是,我正在寻找一个具有出色的avalanching功能的函数,即明文输入的微小变化会导致截然不同的密文输出。
我正在考虑几种可能性,包括XTEA和NTSA。但目前我看到的只是小的变化,例如仅对明文结果的结尾进行(有些)小的更改,这样更改似乎是局部的。这对我的使用不太好,因为明文将包含一个递增的时间戳作为其主要熵源。
有没有一种良好的函数或算法可以实现这一点,而不需要借助大量代码或依赖?

JS是在浏览器中运行还是在服务器端? - mjwills
1
如果您将时间戳放在开头会怎样呢?本能的反应是将其放在末尾。 但是,由于前面的更改本质上比后面的更具有强大的影响力。当然,您也可以向该过程添加盐。 - Christopher
@mjwillis 这将在浏览器中,在单页应用程序中实现。 - Jim Noble
你希望黑客花多长时间来解密信息?加密方法越好,黑客解密数据所需的时间就越长。标准加密方法对黑客来说非常难以解密。简单的加密可以用很少的代码完成,但黑客解密起来会非常简单。 - jdweng
@jdweng 对于我的目的来说,难以被黑客攻击并不重要,简单的黑客攻击也可以。 - Jim Noble
您需要使用类似于计算CRC的移位寄存器方法。请参见:http://www.sunshine2k.de/articles/coding/crc/understanding_crc.html - jdweng
1个回答

0

我想我已经决定使用以一个随机数salt为前缀的XXTEA,这似乎能提供出色的雪崩效应。感谢@Christopher提醒我这种技术。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接