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实现加密相关推荐

  1. python实现非对称加密算法_Python使用rsa模块实现非对称加密与解密

    Python使用rsa模块实现非对称加密与解密 1.简单介绍: RSA加密算法是一种非对称加密算法 是由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制.加密密钥(即公开密钥)PK是公 ...

  2. 基于RSA和AES混合加密实现的加解密小工具

    基于RSA和AES混合加密实现的加解密小工具 闲来无事,用python的tkinter开发了一个基于RSA和AES混合加密的小小工具.总结一下使用到的知识点. 首先是核心的加解密部分. 采用混合加密的 ...

  3. python pycrypto 加密解密

    原文链接: python pycrypto 加密解密 上一篇: 面试链表问题 汇总 下一篇: sympy 解决常见高数问题 参考 http://www.cnblogs.com/huxianglin/p ...

  4. RSA加密算法Python实现

    RSA加密算法Python实现 1.RSA算法简介 2.RSA算法涉及的数学知识 2.1互素 2.2 欧拉定理 2.3求模逆元 2.4 取模运算 2.5 最大公因数 2.6 最小公倍数 2.7 欧几里 ...

  5. RSA(非对称)+AES(对称加密)前后台交互

    前言:    为了提高安全性采用了RSA,但是为了解决RSA加解密性能问题,所以采用了RSA(非对称)+AES(对称加密)方式,如果只考虑其中一种的,可以去看我前面两篇文章,专门单独写的demo,可以 ...

  6. Python代码加密,将python文件编译成so文件

    Python程序(.py文件)是公开的,容易被别人拿去使用,为了更好保护知识产权,可以对python文件加密为.so文件. 首先,我们需要在Ubuntu系统中安装一些准备工具,包括python3-de ...

  7. [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用

    环境: 在ubuntu14.04下,记得安装:sudo pip3 install pycrypto 代码示例1: =========================== import base64 f ...

  8. Python代码加密混淆

    python作为一种解释型语言,源代码加密本身比较困难.但有时候我们在发布一款python产品时又必须考虑到代码的加密性,以避免源代码泄露.为此,我查阅了一些资料,研究了几种python代码加密的常见 ...

  9. python基础教程zip密码_python基础教程Python实现加密的RAR文件解压的方法(密码已知)...

    博主之前在网上找了很多资料,发现rarfile库不能直接调用,需要安装unrar模块,下面将详细介绍整个实现流程. 第一步:安装unrar模块,直接pip install unrar可能会找不到库,需 ...

最新文章

  1. JDK1.8新特性之时间和日期的使用
  2. Java学习笔记--导航
  3. 《从零开始学Swift》学习笔记(Day 16)——字典集合
  4. mysql 逐行读取文件_PHP fgets()和fgetss():逐行读取文件
  5. 一个小时学会jQuery
  6. 易语言代码转换python_易语言通过文本解析的方式把C代码转换成易代码
  7. 关于《windows游戏编程大师技巧》的源代码
  8. ztek usb转串口 linux,Z-Tek USB转串口驱动
  9. mysql字典_mysql常用字典表(完整版)
  10. android 仿小米商城,仿小米商城网页版(全套)
  11. Mysql查询某个月的每一天的数据
  12. 如何查看一篇论文是否被SCI检索
  13. 为什么我们要学习Microsoft Graph
  14. 如何一键关闭win安全中心(Windows Defender )
  15. requests+正则表达式爬取猫眼电影TOP100!
  16. win10开始菜单打不开_win10开始菜单没反应的解决方法教程
  17. Pandas 学习手册中文第二版:1~5
  18. 摄影测量与遥感专业英语词汇
  19. LeetCode—494. 目标和(Target Sum)——分析及代码(Java)
  20. 形式逻辑(01)你的逻辑怎么样?

热门文章

  1. 微型计算机智能体重评测,华为智能体脂秤WiFi版评测:17项身体指标秒知道 与肥胖生活断舍离...
  2. SQLServer中的CAST函数
  3. 字符串的分类统计的两种方法(C语言)
  4. 第三方设备对接小度音箱 记录
  5. Figma响应式布局
  6. postgreSQL数据库常用语法
  7. mysql的文件操作函数_MySQL-操作符及常用函数
  8. java发送手机验证码实现
  9. ajax获取服务器变量,ajax获取服务器变量
  10. 将iPhone短信迁移到安卓系统