本文實(shí)例講述了python實(shí)現(xiàn)無(wú)證書加密解密的方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
無(wú)證書加密就是雙方不需要維護(hù)證書,加密與解密只需要雙方約定一個(gè)key就可以,無(wú)證書加解密的方式應(yīng)用更廣泛一些,python官方也有這方面的相關(guān)例子說(shuō)明,地址是:https://pypi.python.org/pypi/pycrypto,主要用的是from Crypto.Cipher import AES這個(gè)模塊,代碼如下:
/**
* AES加密字符串
*
* @param string data 加密的串
* @param string key 密鑰(只能是16、24、32位)
* @param string iv 16位長(zhǎng)度向量
* @param bool 編碼格式(true:base64 / false:十六進(jìn)制)
* @return string 加密后的結(jié)果
*/
'''
def encrypt_mode_cbc(data, key, iv = 'www.jb51.net!!', base64 = True):
lenth = len(data)
num = lenth % 16
data = data.ljust(lenth + 16 - num)
obj = AES.new(key, AES.MODE_CBC, iv)
result = obj.encrypt(data)
return result.encode('base64') if base64 is True else result.encode('hex')
encrypt = encrypt_mode_cbc('hello geekso', 'www.jb51.net!!')
print encrypt
'''
/**
* AES解密字符串
*
* @param string encrypted 待解密的串
* @param string key 密鑰
* @param string iv 16位長(zhǎng)度向量
* @param bool 編碼(true:base64 / false:十六進(jìn)制)
* @return string 解密后的結(jié)果 or bool
*/
'''
def decrypt_mode_cbc(encrypted, key, iv = 'www.jb51.net!!', base64 = True):
encrypted = encrypted.decode('base64') if base64 is True else encrypted.decode('hex')
if encrypted is not '':
obj = AES.new(key, AES.MODE_CBC, iv)
return obj.decrypt(encrypted)
else:
return False
print decrypt_mode_cbc(encrypt,'www.jb51.net!!')
exit()
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
