首页 > 其他分享 >先对字符串做msd加密,再做RSA加密

先对字符串做msd加密,再做RSA加密

时间:2023-07-26 12:34:01浏览次数:28  
标签:先对 加密 字节 RSA import msd data md5

#  背景
# 计算机字节串(UTF-8 编码):b'\xe4\xbd\xa0\xe5\xa5\xbd'

# 解码为人类语言字符串(Unicode 编码):'你好'

# 第一部分   md5加密
# md5加密  对字节加密,返回的结果需要将字节转16进制字符串

# 导包
import hashlib
def get_md5(data,salt=' '):
    data = hashlib.md5(data.encode())# md5加密之前需要先将处理对象 转字节  计算机只能做字节串 计算机语言
    # 处理之后需要将处理后的数据 转字符串
    #  hex 是"十六进制" 的缩写;
    # digest 是 "摘要" 的意思,特指通过哈希算法生成的固定长度的数据
    md5_data = data.hexdigest() # 将计算机语言转成人类的语言
    return md5_data

# 第二部分  对md5产生的数据 做RSA加密
# 导包
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as PKCS1_cipher
# PKCS1: Public-Key Cryptography Standards 1,公钥密码学标准1。
# Cipher:指加密和解密数据的过程,或者指用于加密和解密的算法。
import base64
def get_rsa(md5_data):
    # 读 公钥

    with open('./public.pem') as file:
        # 将内容赋值给公钥
        public_key_file=file.read()

        # 调用RSA类 并调用 放入公钥方法  实例化了一个毒药瓶子
        public_key=RSA.import_key(public_key_file)
        # 实例化出来一个秘书  秘书手里有两个东西
        # 一个是毒药瓶子 也就是加密的公钥,外人会被毒死,自己人不会
        cipher = PKCS1_cipher.new(public_key)
        # 另一个是被加密的信封 md5_data,
        # 秘书做对信封做加密动作
        # 步骤1 加密
        # 步骤2 将md5处理过的数据转化为字节类型 为了被rsa加密
        # 步骤3 将加密的数据转64位字节; base64.b64encode()函数编码后的结果是一个字节串(bytes)
        # 步骤4  注意  这里使用64位是因为开发设计这个接口的时候 要求了64位;

        rsa_data = base64.b64encode(cipher.encrypt(md5_data.encode()))# 计算机的字节串 做加密操作
        # 步骤4 将处理结果decode转为字符串
        return rsa_data.decode() # 计算机语言转换为人类可读的语言


# 实例化
if __name__ == '__main__':
    result1=get_md5('fqs')
    result2=get_rsa(result1)
    print(result2)

 

标签:先对,加密,字节,RSA,import,msd,data,md5
From: https://www.cnblogs.com/haha1988/p/17582167.html

相关文章

  • md5 加密
    #md5加密对字节加密,返回的结果需要将字节转16进制字符串#导包importhashlibdefget_md5(data,salt=''):data=hashlib.md5(data.encode())#md5加密之前需要先将处理对象转字节#处理之后需要将处理后的数据转字符串#hex是"十六进制"的缩写;......
  • .faust加密勒索数据库恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:.faust加密勒索数据库恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]有客户的win服务器被勒索病毒加密,里面运行有用友系统的Oracle数据库,加密提示为([email protected]):加密的......
  • 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v9.0版已发布
    关于MobileIMSDKMobileIMSDK是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、标准Java平台,服务端基于Netty编写。工程开源地址是:1)Gitee码云地址:https://gitee.com/jackjiang/Mobi......
  • 解锁下载的音乐加密格式
    title:解锁下载的音乐加密格式author:枷锁云-星尘avatar:https://pic.rmb.bdstatic.com/bjh/4d0bc5251b0b8744c872e9021acea141.pngcomments:truedate:2023-07-2409:28:22categories:tags:top_img:https://npm.elemecdn.com/[email protected]/unlock%E6%95%99%E7%......
  • LKT(LCS)系列IIC接口加密芯片调试常见问题(一)
    1、加密芯片的数据交互协议是什么格式?发送时:地址+两字节数据长度(后续数据的长度)+后续数据内容。Eg.5000050084000008。接收时:地址+两字节数据长度(后续数据的长度)+后续数据内容。Eg.51 000A11223344556677889000。(红色为发送,蓝色为接收) 2、主控端发完指令后无Stop信号可以......
  • Java3DES双倍长加密算法详解
     Java3DES双倍长加密算法是一种强大的加密算法,它可以保护我们的敏感数据不被未经授权的人访问。在本文中,我将详细介绍Java3DES双倍长加密算法的原理和使用方法。首先,让我们来了解一下Java3DES双倍长加密算法的原理。这种算法是基于DES(DataEncryptionStandard)算法的改进版本......
  • RUBY实践—带密码加密的用户创建及修改
    开发环境Ruby:Ruby1.9.1Rails:Rails2.3.5Mysql:Mysql5.0.9Driver:mysql-2.8.1-x86-mingw32.gemIDE:Rubymine2.0.1 一、创建数据表Users利用RubyMine自带的Scaffold工具创建数据表Users,也可以手动创建 二、创建Controller和ViewRuby项目—>右键—>CreateModel完成后将自动生成......
  • 加密文件
    有时候我们希望将文件加密传输给前端。最初我的思路是加密文件流,但研究了很久都没有得到结果。后来突然想到,数据库里不是有blob数据嘛,而blob就是一种二进制数据,那么SSM框架是怎么处理数据库里的blob数据传给前端的呢?于是我就使用mybatis-generator生存一个DTO对象,发现其中的blob......
  • python数据加密与解密方法
    #-*-encoding:utf-8-*-"""@File:加密与解密.py@Time:2023-07-2310:02@Author:simon@Email:[email protected]@Software:PyCharm"""fromhashlibimportmd5importbase64#MD5加密obj=md5()str="你是个小可爱......
  • java源码加密代码
    1、java代码想加密怎么处理?2、java加密解密代码3、如何有效防止Java程序源码被人偷窥?4、Java编程实现将文件加密,将源程序补充完整5、用java写个文件加密的代码该怎么写6、java项目如何加密?java代码想加密怎么处理?只给编译后java源码加密的.jar文件java源码加密,不给......