博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
加密解密
阅读量:6690 次
发布时间:2019-06-25

本文共 2279 字,大约阅读时间需要 7 分钟。

RSA

#!/usr/bin/env python# -*- coding:utf-8 -*-import rsaimport base64  # ######### 1. 生成公钥私钥 #########pub_key_obj, priv_key_obj = rsa.newkeys(256) pub_key_str = pub_key_obj.save_pkcs1()pub_key_code = base64.standard_b64encode(pub_key_str) priv_key_str = priv_key_obj.save_pkcs1()priv_key_code = base64.standard_b64encode(priv_key_str) print(pub_key_code)print(priv_key_code) # ######### 2. 加密 #########def encrypt(value):    key_str = base64.standard_b64decode(pub_key_code)    pk = rsa.PublicKey.load_pkcs1(key_str)    val = rsa.encrypt(value.encode('utf-8'), pk)    return val  # ######### 3. 解密 #########def decrypt(value):    key_str = base64.standard_b64decode(priv_key_code)    pk = rsa.PrivateKey.load_pkcs1(key_str)    val = rsa.decrypt(value, pk)    return val  # ######### 基本使用 #########if __name__ == '__main__':    v = 'wupeiqi'    v1 = encrypt(v)    print(v1)    v2 = decrypt(v1)    print(v2)

 

AES(高级加密)

#3.6安装  pip3 install pycryptodome#mac     pip3 install pycrypto

a. 事例:

############################### 加密 ##############################     from Crypto.Cipher import AES    def encrypt(message):        key = b'dfdsdfsasdfdsdfs'                       #key必须是16的整数倍        cipher = AES.new(key, AES.MODE_CBC, key)        #创建对象        ----------------------------------------------        #先转成字节,把数据拼够16字节的整数倍        ba_data = bytearray(message,encoding='utf-8')   #把数据转成bytearray(byte的数组),bytearray只能追加数字,默认把数字转成字节        v1 = len(ba_data)        v2 = v1 % 16        if v2 == 0:            v3 = 16        else:            v3 = 16 - v2                                #v3是追加的长度        for i in range(v3):            ba_data.append(v3)                          #bytearray只能追加数字,默认把数字转成字节        final_data = ba_data.decode('utf-8')        ----------------------------------------------        msg = cipher.encrypt(final_data)                #要加密的字符串,必须是16个字节或16个字节的倍数,加密后是byte格式        return msg ############################### 解密 ##############################    def decrypt(msg):        key = b'dfdsdfsasdfdsdfs'        cipher = AES.new(key, AES.MODE_CBC, key)        result = cipher.decrypt(msg)                    #把加密后的字节解密成不加密的字节        data = result[0:-result[-1]]        return str(data,encoding='utf-8')

 

转载于:https://www.cnblogs.com/bingabcd/p/7271689.html

你可能感兴趣的文章
Introspector内省机制学习
查看>>
echarts动态多组数据显示
查看>>
xstream 去掉class
查看>>
Activiti数据库
查看>>
我所看过的书
查看>>
静态内部类与非静态内部类
查看>>
Cisco3750交换机堆叠配置要点
查看>>
Debian以及Ubuntu源设置
查看>>
dedecms 当session开启了memcache存储后报错解决办法
查看>>
Centos 下搭建SVN + Apache 服务器
查看>>
Linux下C/C++编译器GCC/G++使用简介
查看>>
TI DSP型号简述
查看>>
XIP
查看>>
struts2 jsonp 解决跨域问题
查看>>
oracle11g的数据库导入到oracle10g中
查看>>
自动亮度配置
查看>>
打代码必备攻略-前端
查看>>
几款在线图文编辑单元
查看>>
event.keycode值大全
查看>>
PHP异步调用实现方式
查看>>