鱼C论坛

 找回密码
 立即注册
查看: 3754|回复: 19

[作品展示] 新版本!(含详细注释)ASCII加密&解密升级版

[复制链接]
发表于 2014-11-18 00:02:10 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 戴宇轩 于 2014-11-18 18:45 编辑

本帖子是上一个帖子的延续, URL是:http://bbs.fishc.com/forum.php?mod=viewthread&tid=55615&page=1#pid2171770相比上一个程序, 最大的升级是改变原来只能加密9个字符的限制, 其次, 它现在可以加密中文和Emoji表情,(本脚本应该不会再次更新了)
  1. #加密(大部分注释都和原来是一样的, 还简化了一下)
  2. from random import *
  3. flag = list()
  4. string = list(input())
  5. string2 = ''
  6. flag.append(len(str(len(str(len(string))))))        #将字符数的长度的长度(对, 就是长度的长度)放入列表flag
  7. #如果不加上一行, 程序只能对999999999个字符进行操作, 因为控制字符串长度的变量是1位数, 所以是9个9
  8. #一旦加上了, 控制字符串长度的变量就最多是9位数, 所以九九八十一, 程序最多就能对由81个9组成的整数个字符进行操作了, 不要小看它, 把它最多能控制的字符数换算成存储容量单位, 任何一台计算机的硬盘都承受不起
  9. flag.append(len(str(len(string))))
  10. flag.append(len(string))
  11. flag.extend([len(str(ord(i))) for i in string] + [ord(i) for i in string])        #这里把原来的两行合并为一行
  12. for i in flag:
  13.     string2 += str(i)
  14. string = list(string2)
  15. x = range(10)
  16. for repeat in range(3):           #如果加密结果太长, 可以把括号里的数字改成小一些的整数, 但是下一个脚本的第3行的括号里的数字要改成本行你设定的数字减1
  17.     for i in range(0, len(string) * 2 - 1, 2):
  18.         string.insert(i, x[randint(0, 9)])
  19.     string.reverse()
  20. for i in string:   
  21.     print(i, end = '')
复制代码
  1. #解密
  2. string = list(input()[::-1])        #与加密脚本的加密过程相对应的解密过程(参考上一个帖子)
  3. for repeat in range(2):          #我是第三行
  4.     string = string[1::2]
  5.     string.reverse()
  6. temp = string[1::2]
  7. string = list()
  8. string.extend([int(i) for i in temp])        #将列表里的内容(字符)转化为数字
  9. length = 0
  10. bit = 0
  11. l = string.pop(0)      #将加密前字符串位数的位数取出, 放在l里
  12. for i in range(l):
  13.     length += string.pop(0) * 10 ** (l - i - 1)        #将列表的前l位取出并转为整数放在length中
  14. for i in range(length):
  15.     bit += string.pop(0) * 10 ** (length - i - 1)        #将列表的前length位取出并转为整数放在bit中
  16. temp = list()
  17. flag = string[:bit]        #将加密前各个字符的ASCII码的位数(列表)从string取出并放入flag中
  18. string = string[bit:]        #将string中的flag部分截掉, 保留加密前各个字符的ASCII码
  19. for i in flag:
  20.     if i == 3:        #如果当前字符(flag中的元素, 也是加密前字符串的对应字符的ASCII码的长度)为3
  21.         temp.append(string.pop(0) * 100 + string.pop(0) * 10 + string.pop(0))      #将string的前三位转为一个三位数, 放入列表temp
  22.     elif i == 2:
  23.         temp.append(string.pop(0) * 10 + string.pop(0))        #如果是2, 取string的前两位转化成一个二位数, 放入列表temp
  24.     else:
  25.         temp.append(string.pop(0))         #否则(如果是1), 取string的第一位, 放入列表temp(因为从第8行开始, string里的元素都是一位数整数)
  26. for i in temp:
  27.     print('%c' % i, end = '')       #将temp里的ASCII码转化为字符, 打印出来
复制代码

解密脚本

解密脚本

要解密的内容

要解密的内容

解密结果

解密结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-18 00:27:14 | 显示全部楼层

回帖奖励 +1 鱼币

very good. thank you.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-18 09:56:43 | 显示全部楼层
表情是怎么打进去的。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-18 10:23:54 | 显示全部楼层
小小学习下。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-18 17:23:04 | 显示全部楼层
wei_Y 发表于 2014-11-18 09:56
表情是怎么打进去的。。

我用iPad打上去的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-18 20:46:11 | 显示全部楼层
xuexi 学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-31 19:29:58 | 显示全部楼层
我是为了更好加密&解密,才开始注册学习的,从零开始学起,给个提示从什么地方开始学起?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-2 13:30:14 From FishC Mobile | 显示全部楼层

我学的不是加密解密, 自己的创意而已^_^来自: iPhone客户端
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-7 12:41:16 | 显示全部楼层
~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-9 10:30:16 | 显示全部楼层
这是什么电脑?MAC
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-9 16:33:05 | 显示全部楼层
顶一个~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-9 16:39:52 | 显示全部楼层
求告知APP名字?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-9 17:50:49 | 显示全部楼层
谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-9 23:46:55 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-13 14:23:10 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-14 17:29:46 | 显示全部楼层
非常需要,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-18 00:50:58 | 显示全部楼层
谢谢楼主分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-18 09:37:58 | 显示全部楼层
好贴要顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-18 09:57:39 | 显示全部楼层
学习哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-9 22:47:43 | 显示全部楼层
看看学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 10:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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