发布网友 发布时间:2022-04-20 10:20
共3个回答
热心网友 时间:2022-04-25 18:48
维吉尼亚算法如果仅仅作用于字符集在A到Z a到z,0到9这样的范围,就叫对“英文文本”实施加密
这个英文文本的范围,A到Z等于字节值65到90, a到z等于字节值97到122,0到9等于字节值48到57。中间是断续的几个区间
算法如果改动一下,把字符集扩大到0到255,相当于对256个字母重新编排密码本,而不局限于英文文本的26个字母。这样就能对一个字节的所有情况进行加密。能对字节加密,所有的文件都以字节为基本存储单位,也就实现了对任何文件、任何数据的加密。
如果之前英文文本的处理是自己写的,稍加改动就能变成处理256个字母。
热心网友 时间:2022-04-25 20:06
按二进制方式打开文件
一个字符一个字符的读取
如:
FILE * fp=fopen("file.txtx" , "rb");
unsigned char ch=0;
ch=fgetc(fp);
按英文处理方式对ch进行加密处理。追问可以按照二进制读取的话,读入ch的应该是010101的字符串啊?我这个算法只能对字母进行加密,应该如何处理呢?
追答按算法说明,该算法就是针对字母进行的加密
读入的ch如果是字母的话,还是字母,你对二进制读取文件认识有误!
对于非字母的加密方式该算法没有提到。在实现时,你可以增加自己的处理方式。
热心网友 时间:2022-04-25 21:40
两个思路,(1)、把文件中字母加密,其它的不管。
(2)、加密排列表不用英文字母,换成别的,直接用十六进制数,如果觉得密码小,则可以用两位十六进制数来表示。(个人认为两位十六进制数好一点,整好是一个字节,一个字节一个字节的加密,蛮好)