我希望从只有一个字符(例如"C“)的file.txt中获取一个字符,并使用它的ASCII值来转换另一个文件2.txt并对其进行更改。例如
C值= 67
file2.txt具有:
Hello
World我希望它改变每个字符并将其转换为:
使用"C“ASCII值添加H的ASCII值,并将其除以2,从而得到另一个ASCII值,这将是它将要生成的新文件上的新字符。
因此,新文件将被印为"dlroW olleH“,为每个字符添加新的ASCII值,就像加密一样。
我怎么能做到这一点没有任何花哨的命令。
我在这里的主要问题是:
因此:
file.txt --> Key
file1.txt -->file to be encrypted
file3.txt encrypted file.发布于 2011-09-18 23:26:27
1.)如何获取ASCII值并将它们混合在一起?
然而,这被称为转位密码:
除法(chr1 + chr2)/2是一个不可行的建议(正如Jonathan所说,不可逆转),因为您将从chr2中丢弃最低位。无论您如何进行四舍五入,请考虑您的加密将将26个值{'A','B','C',…‘Z’}映射到13 (或14)。这不是双射,你会失去信息。
所以别再做组织了。
char transpose = whatever;
int transpose_offset = transpose-'A';
char encrypt(char in, int transpose_offset) {
return ((in-'A') + transpose_offset) % 26 + 'A';
}(除以2等于右>> 1,而不是那样,你可以通过循环移位来保存信息。但是无论如何,这并不能买到多少钱,用表格的方式破坏一个转位密码是很简单的。)
3.)我怎么做才能使新文件都是向后的?
很简单。要么对源文本进行反向加密,然后在执行过程中将其写出来。否则,加密前进,存储结果,并向后写出。
https://stackoverflow.com/questions/7465131
复制相似问题