Python2 解密易語言DES加密的密文
易語言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加密原理
我沒有看懂,但是對方給了原始碼,因此直接使用作者提供的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)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1916/viewspace-2826247/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C語言實現DES加密C語言加密
- C#DES加密和解密C#加密解密
- 傻瓜式教學DES加密、解密加密解密
- java使用DES加密方式,實現對資料的加密解密Java加密解密
- java實現DES資料加密與解密Java加密解密
- java 實現 DES加密 解密演算法Java加密解密演算法
- JAVA和C# 3DES加密解密JavaC#3D加密解密
- DES加密和解密PHP,Java,ObjectC統一的方法加密解密PHPJavaObject
- 序列密碼的加密與解密密碼加密解密
- 使用Des,MD5 加密.解密.字串.檔案 (轉)加密解密字串
- 文字加密:常見的密碼加密解密方法加密密碼解密
- PHP和.NET通用的加密解密函式類,均使用3DES加解密PHP加密解密函式3D
- DES加密加密
- 《密碼學系列》|| 詳解密碼學的多重DES演算法...密碼學解密演算法
- 區塊鏈背後的資訊保安(2) DES、3DES加密演算法原理及其GO語言實現區塊鏈3D加密演算法Go
- 用vb實現DES加解密演算法(二)--加密 (轉)解密演算法加密
- Java DES 加解密("DES/EBC/NoPadding")Java解密padding
- DES加密解密(適用Windows和Linux系統)防止linux下解密失敗加密解密WindowsLinux
- DES java後臺解密Java解密
- DES加密後get獲取url引數無法解密問題加密解密
- 【知識積累】DES演算法之C#加密&Java解密演算法C#加密Java解密
- Go 如何實現 PHP 的密碼加密解密GoPHP密碼加密解密
- DES加密詳解加密
- DES加密簡述加密
- 關於Javascript的des加密JavaScript加密
- Java之DES加解密解析Java解密
- 3DES加解密-EncryptAndDecryptFile3D解密
- 中文程式語言——易語言,到底是用來幹什麼的?易語言值得學習嗎?易語言的優勢有什麼?
- Java DES 加解密("DES/ECB/PKCS1Padding")Java解密padding
- Java DES 加解密("DES/CBC/PKCS5Padding")Java解密padding
- 常用加密解密演算法【RSA、AES、DES、MD5】介紹和使用加密解密演算法
- Dotnet core結合jquery的前後端加密解密密碼密文傳輸的實現jQuery後端加密解密密碼
- ios des 加/解密(with base64)iOS解密
- Android資料加密之Des加密Android加密
- C語言:一種高效、易學的程式語言C語言
- 易語言進階
- DES對稱資料加密加密
- 加密解密加密解密