捕捉一个随机数.我需要移动输入的字符并对它们进行编码



所以我需要对给定的输入进行编码。喜欢的用户类型:"ABC"它应该会变成"JKL"我知道我们可以通过为每个单词定义一个字符来做到这一点。比如A = J B = K但问题是每次都会得到相同的编码。那么是否存在随机转发角色的方法?如果可以记录随机数,那么字符串就可以被解码有人知道怎么走吗?我真的很感激。

编辑1:这基本上是我的项目,加密任何给定的文件使用位移位,然后添加虚拟数据,然后通过矢量量化压缩它。

所以我的第一步是读取和写入一个已经完成的文件。现在我想把字符向前移动,我可以把它们转换成二进制然后使用位移位或者我可以把字符向前移动。但是我想知道是否有任何方法可以通过捕获随机生成的数字,因此在解码时我可以使用该数字正确地解密字符。

和我已经大致做了一个代码…我将很快更新它。感谢您的反馈

您可以设置一个随机生成器,这将使它每次都返回相同的随机数序列。这样您就可以使用密钥进行加密:

int key = 42;
Random rnd = new Random(key);

现在您可以使用随机数转换每个字符。例如,对于字符范围A-Z:

char c = 'X';
int code = c - 'A'; // Bring the character code into the range 0-25
code = code + rnd.Next(26); // encrypt
code = code % 26; // roll over for codes > 25
c = (char)('A' + code); // convert code to character

解密将是相同的,除了减去随机数。

最新更新