RSA:jsencrypt/Python实现加密
RSA公开密钥密码体制
目录
- 一、浏览器中使用jsencrypt
- 二、Node.js使用jsencrypt
- 三、Python实现1
- 四、Python实现2
一、浏览器中使用jsencrypt
<script src="https://cdn.bootcdn.net/ajax/libs/jsencrypt/3.1.0/jsencrypt.min.js"></script><script>// 公钥const publicKey ='MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB';var encrypt = new JSEncrypt();encrypt.setPublicKey(publicKey);var encrypted = encrypt.encrypt('hello');console.log(encrypted);
</script>
二、Node.js使用jsencrypt
- https://www.npmjs.com/package/jsencrypt
- https://github.com/travist/jsencrypt
安装
npm i jsencrypt
配合vue使用
参考:https://www.jb51.net/article/159904.htm
<template></template><script>
import JSEncrypt from 'jsencrypt';export default {name: '',methods: {encryptData() {// 引入加密模块,对密码进行处理// 公钥const publicKey ='MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB';var encrypt = new JSEncrypt();encrypt.setPublicKey(publicKey);var encrypted = encrypt.encrypt('hello');console.log(encrypted);},},created() {this.encryptData();},
};
</script><style scoped></style>
三、Python实现1
# -*- coding: utf-8 -*-
import base64
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pksc1_v1_5
from Crypto.PublicKey import RSAdef encrpt(password, public_key):public_key = '-----BEGIN PUBLIC KEY-----\n' + public_key + '\n-----END PUBLIC KEY-----'rsakey = RSA.importKey(public_key)cipher = Cipher_pksc1_v1_5.new(rsakey)cipher_text = base64.b64encode(cipher.encrypt(password.encode()))return cipher_text.decode()# key需要修改成自己的
key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB'password = encrpt('hello', key)
print(password)
四、Python实现2
参考:python 3 实现js中JSEncrypt encrypt方法,rsa模块根据字符串公钥生成加密字符串
# -*- coding: utf-8 -*-
# coding=utf-8
import base64
import rsa__all__ = ['rsa_encrypt']def _str2key(s):# 对字符串解码b_str = base64.b64decode(s)if len(b_str) < 162:return Falsehex_str = ''# 按位转换成16进制for x in b_str:h = hex(x)[2:]h = h.rjust(2, '0')hex_str += h# 找到模数和指数的开头结束位置m_start = 29 * 2e_start = 159 * 2m_len = 128 * 2e_len = 3 * 2modulus = hex_str[m_start:m_start + m_len]exponent = hex_str[e_start:e_start + e_len]return modulus, exponentdef rsa_encrypt(s, pubkey_str):'''rsa加密:param s::param pubkey_str:公钥:return:'''key = _str2key(pubkey_str)modulus = int(key[0], 16)exponent = int(key[1], 16)pubkey = rsa.PublicKey(modulus, exponent)return base64.b64encode(rsa.encrypt(s.encode(), pubkey)).decode()key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB'
password = rsa_encrypt('hello', key)
print(password)
其他文章
python 实现RSA公钥加密,私钥解密
Python实现RSA(jsencrypt)加密的两种方式
RSA:jsencrypt/Python实现加密相关推荐
- python实现非对称加密算法_Python使用rsa模块实现非对称加密与解密
Python使用rsa模块实现非对称加密与解密 1.简单介绍: RSA加密算法是一种非对称加密算法 是由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制.加密密钥(即公开密钥)PK是公 ...
- 基于RSA和AES混合加密实现的加解密小工具
基于RSA和AES混合加密实现的加解密小工具 闲来无事,用python的tkinter开发了一个基于RSA和AES混合加密的小小工具.总结一下使用到的知识点. 首先是核心的加解密部分. 采用混合加密的 ...
- python pycrypto 加密解密
原文链接: python pycrypto 加密解密 上一篇: 面试链表问题 汇总 下一篇: sympy 解决常见高数问题 参考 http://www.cnblogs.com/huxianglin/p ...
- RSA加密算法Python实现
RSA加密算法Python实现 1.RSA算法简介 2.RSA算法涉及的数学知识 2.1互素 2.2 欧拉定理 2.3求模逆元 2.4 取模运算 2.5 最大公因数 2.6 最小公倍数 2.7 欧几里 ...
- RSA(非对称)+AES(对称加密)前后台交互
前言: 为了提高安全性采用了RSA,但是为了解决RSA加解密性能问题,所以采用了RSA(非对称)+AES(对称加密)方式,如果只考虑其中一种的,可以去看我前面两篇文章,专门单独写的demo,可以 ...
- Python代码加密,将python文件编译成so文件
Python程序(.py文件)是公开的,容易被别人拿去使用,为了更好保护知识产权,可以对python文件加密为.so文件. 首先,我们需要在Ubuntu系统中安装一些准备工具,包括python3-de ...
- [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用
环境: 在ubuntu14.04下,记得安装:sudo pip3 install pycrypto 代码示例1: =========================== import base64 f ...
- Python代码加密混淆
python作为一种解释型语言,源代码加密本身比较困难.但有时候我们在发布一款python产品时又必须考虑到代码的加密性,以避免源代码泄露.为此,我查阅了一些资料,研究了几种python代码加密的常见 ...
- python基础教程zip密码_python基础教程Python实现加密的RAR文件解压的方法(密码已知)...
博主之前在网上找了很多资料,发现rarfile库不能直接调用,需要安装unrar模块,下面将详细介绍整个实现流程. 第一步:安装unrar模块,直接pip install unrar可能会找不到库,需 ...
最新文章
- JDK1.8新特性之时间和日期的使用
- Java学习笔记--导航
- 《从零开始学Swift》学习笔记(Day 16)——字典集合
- mysql 逐行读取文件_PHP fgets()和fgetss():逐行读取文件
- 一个小时学会jQuery
- 易语言代码转换python_易语言通过文本解析的方式把C代码转换成易代码
- 关于《windows游戏编程大师技巧》的源代码
- ztek usb转串口 linux,Z-Tek USB转串口驱动
- mysql字典_mysql常用字典表(完整版)
- android 仿小米商城,仿小米商城网页版(全套)
- Mysql查询某个月的每一天的数据
- 如何查看一篇论文是否被SCI检索
- 为什么我们要学习Microsoft Graph
- 如何一键关闭win安全中心(Windows Defender )
- requests+正则表达式爬取猫眼电影TOP100!
- win10开始菜单打不开_win10开始菜单没反应的解决方法教程
- Pandas 学习手册中文第二版:1~5
- 摄影测量与遥感专业英语词汇
- LeetCode—494. 目标和(Target Sum)——分析及代码(Java)
- 形式逻辑(01)你的逻辑怎么样?