2013-04-03 13 views
-2

所以我需要编码任何输入。 像用户类型:“ABC”它应该转移到“JKL” 我知道我们可以通过为每个单词定义一个字符来做到这一点。像A = J,B = K ,但问题是每次都会出现相同的编码。 那么有什么方法随机转发字符?如果可以记录随机数字,那么字符串可以被解码 任何人都知道一种方式?我会很感激。捕捉一个随机数。我需要移动输入的字符并对它们进行编码

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

所以我的第一步是读取和写入完成的文件。现在我想要向前移动字符,我可以将它们转换为二进制,然后使用位移,或者我可以将字符向前移动。但是我想知道是否有什么办法可以通过我可以随机产生的号码CATCH,所以在解码的时候我可以用这个号码正确解密字符。

我大致做了一个代码..我会尽快更新它。感谢您的反馈

+0

所以你想要一个字符串“ABC”不总是“加密”到相同的输出?还是说同一个字符串中的两个“A”不应该都映射到“J”? –

+0

真的需要你的更多信息。你试过什么了?这不是一个好的写作网站 – Thewads

回答

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 

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

+0

+1。或者,如果OP不限于可打印字母,则可以使用XOR功能。 – oleksii

相关问题