鱼C论坛

 找回密码
 立即注册
查看: 939|回复: 9

[已解决]新手疑惑

[复制链接]
发表于 2022-1-30 10:22:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
标识那句看不懂,请求大佬解惑

不懂

不懂
最佳答案
2022-1-30 16:38:04
本帖最后由 翼是孤独 于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-30 10:24:20 | 显示全部楼层
都不说你的代码是实现什么功能吗   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-30 10:30:26 | 显示全部楼层
base 是起始值,
key 是偏移值,
%26 是为了防止泄露,
ord() 是得到一个字符串的编码,
chr() 相反,接触上面加工后的编码!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-30 11:54:30 | 显示全部楼层
意思就是把你输入的明文 偏移key位(大小写保持)
比如:
明文: AbCdEf
key=2
密文就是CdEfGh
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-30 16:14:25 | 显示全部楼层
python爱好者. 发表于 2022-1-30 10:30
base 是起始值,
key 是偏移值,
%26 是为了防止泄露,

不知道为啥这样写,难道不能直接相加吗(chr(ord(each)+key))?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-30 16:15:30 | 显示全部楼层
翼是孤独 发表于 2022-1-30 11:54
意思就是把你输入的明文 偏移key位(大小写保持)
比如:
明文: AbCdEf

懂,不知为啥这样写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-30 16:36:08 | 显示全部楼层
会泄露的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-30 16:36:38 | 显示全部楼层
不用管这些,这是公式,套就完了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-30 16:38:04 | 显示全部楼层    本楼为最佳答案   
本帖最后由 翼是孤独 于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-30 21:48:20 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 10:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表