为了账号安全,请及时绑定邮箱和手机立即绑定

Python2 解密易语言DES加密的密文

标签:
Python

易语言DES加密研究背景

易语言与后端的Python进行通信,数据希望使用DES加密,因此涉及到易语言DES加密数据,然后使用Python的DES算法进行解密。

虽然这个需求很常见,但确发现网上文章相关文章不多,因此将我总结的整理出来,供给大家参考

易语言DES加密实现:

找了很多,网上各种第三方DES加密和解密的库,但是发现好用的很少,最后发现,其实易语言自身就支持这个加密算法

函数原型如下:

调用格式: 〈字节集〉 加密数据 (字节集 字节集数据,文本型 密码文本,[整数型 加密算法]) - 数据操作支持库一->数据加解密

英文名称:Encrypt

加密一段字节集数据,返回加密后的结果字节集。如果失败,返回空字节集。本命令为初级命令。

参数<1>的名称为“字节集数据”,类型为“字节集(bin)”。为命令提供所需的字节集数据。

参数<2>的名称为“密码文本”,类型为“文本型(text)”。

参数<3>的名称为“加密算法”,类型为“整数型(int)”,可以被省略。指定具体使用的加密算法,可以为以下常量值之一:1: #DES算法; 2: #RC4算法。加密和解密必须使用相同的算法,有关算法的具体说明请参阅有关文献。如果本参数被省略,则默认值为1,即DES算法。

操作系统需求: Windows、Linux

使用举例:

加密函数(到字节集(“abc"), “wodekey”, #DES算法)

非常简单,但是加密后数据是字节集不是很友好,因此转换成 十六进制表示

字节集_字节集到十六进制 (加密数据 (到字节集 (”abc“, “test” , #DES算法))

Python解密易语言的DES密文

初看很简单的问题,但是测试发现 python根本解不开易语言实现的DES密文

经过苦苦追寻,最终 看到有人分析过 易语言的DES加密原理 易语言DES加密原理

我没有看懂,但是对方给了源代码,因此直接使用作者提供的python代码就可以了

(注:原作者的代码 有一行bug i = i + 1 if i < 8 else 0 需要将 8改成 7否则会报错)

但是发现 这代码是Python3的,我的环境是Python2 死活是不行

需要将上述代码转成python2的

核心修改的代码:

ba[i] =int(format(ord(b[i]),‘0>8b’)[::-1],2)

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消