新手疑惑
标识那句看不懂,请求大佬解惑{:5_92:}都不说你的代码是实现什么功能吗 base 是起始值,
key 是偏移值,
%26 是为了防止泄露,
ord() 是得到一个字符串的编码,
chr() 相反,接触上面加工后的编码! 意思就是把你输入的明文 偏移key位(大小写保持)
比如:
明文: AbCdEf
key=2
密文就是CdEfGh python爱好者. 发表于 2022-1-30 10:30
base 是起始值,
key 是偏移值,
%26 是为了防止泄露,
不知道为啥这样写,难道不能直接相加吗(chr(ord(each)+key))? 翼是孤独 发表于 2022-1-30 11:54
意思就是把你输入的明文 偏移key位(大小写保持)
比如:
明文: AbCdEf
懂,不知为啥这样写 会泄露的 不用管这些,这是公式,套就完了! 本帖最后由 翼是孤独 于 2022-1-30 16:41 编辑
ord(ch) 表示 取字符ch的ASCII码
chr(256范围内的整数) 将整数转为对应ASCII字符
含义 当each = y,key = 3
base a 或者 A 的ASCII 码 base = a的ASCII码
ord(each) each 的ASCII y的ASCII码
ord(each) - base each字符相对于 a 或者 A 的位置 y相对a的位置
ord(each) - base + key each偏移key位的字符相对于 a 或者 A 的位置 y偏移3位相对a的位置
(ord(each) - base + key) % 26 字母只有26个,相对a(或者A)的位置超过 26 就 b相对a的位置
不是相同大小写的字母(或者不是字母)了,所以取个余
(ord(each) - base + key) % 26 + base each偏移key位字符 的ASCII码 b的ASCII码
chr((ord(each) - base + key) % 26 + base ) each偏移key位的字符 y偏移3位的结果是b 翼是孤独 发表于 2022-1-30 16:38
懂,感谢大哥{:5_95:}
页:
[1]