鱼C论坛

 找回密码
 立即注册
查看: 2872|回复: 6

[技术交流] 有个小的加密算法,实现过程稍微土气,求优化

[复制链接]
发表于 2015-8-8 15:44:46 | 显示全部楼层 |阅读模式

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

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

x
首先会获取到一个字典类型的数据,和一个分配过来的code,根据这两个数据算出一个加密串,算法是这样的:
字典里面的数据按key排序,然后将虽有的键值对用&连接起来,生成一个str0 = k1&v1&k2&v2&......&kn&vn,
对连接好的str0做两次md5加密,一次是在str0前面加上code,生成sign1,
再在sign1后面加上code,来一次md5,生成sign2,返回sign2即可。

看看我的实现:

  1. __author__ = 'Garfield'

  2. import hashlib


  3. def signstr(data, code):
  4.     codestr = str(code)
  5.     list1 = sorted(data.items())
  6.     list2 = []

  7.     for each in list1:
  8.         list2.append(each[0])
  9.         list2.append(each[1])

  10.     str0 = '&'.join(list2)
  11.     sign1 = hashlib.md5((codestr + str0).encode('utf-8')).hexdigest()
  12.     sign2 = hashlib.md5((sign1 + codestr).encode('utf-8')).hexdigest()

  13.     return sign2
复制代码


我总感觉,从字典到拼接串str0,方法有些土,有没有哪位鱼油能想个更优雅的办法。
不胜感谢了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-10 12:15:03 | 显示全部楼层
str0 = '&'.join(map(lambda x: '&'.join(x), list1))

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
jiagd0105 + 2 + 2 + 1 热爱鱼C^_^

查看全部评分

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

使用道具 举报

发表于 2015-8-9 16:34:23 | 显示全部楼层
想了半天,好像除了这样没啥一步到位的方法了,但总感觉是可以改善下的……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2015-8-11 14:18:59 | 显示全部楼层
wei_Y 发表于 2015-8-10 12:15
str0 = '&'.join(map(lambda x: '&'.join(x), list1))

可行,学习了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-27 23:29:28 | 显示全部楼层
刚刚学习到lambda表达式,学习之后回来看看你的代码!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-3 19:59:16 | 显示全部楼层
算法未学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 13:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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