鱼C论坛

 找回密码
 立即注册
查看: 3569|回复: 14

[技术交流] 【Cryptography】Affine

[复制链接]
发表于 2014-3-29 22:53:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ~风介~ 于 2015-1-12 22:01 编辑

代码:
  1. '''仿射加密:默认密文全为无空格字母\按要求输入密钥'''
  2. def Affine(plaintext,key1,key2):
  3.     list1,list2,list3,list4,list5 = [],[],[],[],[]
  4.    
  5.     for i in plaintext:#把密文中的字母换为字母表中对应位置的数字
  6.         list1.append(letter_list.index(i.upper()))
  7.     for i in list1:    #加密:y = (k1*x + k2)%26
  8.         list2.append(((i * key1) + key2)%26)
  9.     for i in list2:    #把加密后的数字换算为对应位置的字母,输出密文。
  10.         list3.append(letter_list[i])
  11.     print('加密后的密文是:',list3)
  12.    #以上为加密部分以下为解密部分
  13.     for i in list2:    #解密:x = (k1的逆)*(y - k2)%26
  14.        list4.append(((i - key2) * Getinverse(key1,letter_list))%26)
  15.     for i in list4:    #把解密后的数字换算为对应位置的字母,输出明文。
  16.         list5.append(letter_list[i])
  17.     print('解密后的密文是:',list5)

  18. def Getinverse(key1,letter_list):#求key1的逆元
  19.        for j in letter_list:
  20.            if(1 == (key1 * (letter_list.index(j)))%len(letter_list)):
  21.               return letter_list.index(j);
  22.         

  23.    
  24. letter_list="ABCDEFGHIJKLMNOPQRSTUVWXYZ" #字母表
  25. plaintext = 'Wednesday'
  26. print('k1可选:1,3,5,7,9,11,15,17,19,21,,23,25')
  27. key1 = int(input('请输入与26互素的整数k1作为密钥1:'))
  28. key2 = int(input('请输入正整数k2作为密钥2:'))
  29. Affine(plaintext,key1,key2)
复制代码

截图:
QQ拼音截图未命名.png

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2014-4-25 10:41:12 | 显示全部楼层
好像很屌的样子啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 09:05:42 | 显示全部楼层
学习一下,谢谢分享。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 16:50:43 | 显示全部楼层
厉害啊~!         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 17:20:12 | 显示全部楼层
11111111111111111111111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 19:07:56 | 显示全部楼层
赞一个,支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 19:33:12 | 显示全部楼层
看看  顺便顶LZ
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 21:16:06 | 显示全部楼层
我只是路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 22:33:12 | 显示全部楼层
貌似很强大啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 23:19:13 | 显示全部楼层
。。。。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-20 23:33:37 | 显示全部楼层

学习一下,谢谢分享。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-21 00:41:31 | 显示全部楼层
学习一下  路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-21 01:51:26 | 显示全部楼层
Hello World
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-22 14:05:50 | 显示全部楼层
呵呵呵呵呵呵呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-22 15:49:16 | 显示全部楼层
看看   顺便顶LZ
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 14:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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