• 难将由我,我不为难,谁敢兴之!”——《资治通鉴》
  • python脚本打包工具 pyinstaller nuitka pyportable-installer cx_freeze py2exe

  • 农村大三谚语:不杀跪地牛,不吃看门狗,不弃结发妻。 ​

  • 兔死狗烹、卸磨杀驴、鸟尽弓藏、藏弓烹狗、过河拆桥

  • 鸟尽弓藏 兔死狗烹 卸磨杀驴

  • 焚我残躯,熊熊圣火 生亦何欢,死亦何苦 为善除恶,唯光明故

  • 一支笔,写尽世态炎凉;三尺剑,斩断魑魅魍魉。

  • 《远西奇器图说》《博物通书》

  • 复旦大学一教授在微博表示:广东人因为喜欢所谓去湿气而煲汤,在汤中乱放中药材,其结果是成为世界上肾病发病率最高的三大地区之一。

    广东是肾病高发区

    据流行病学调查数据和全国登记资料统计,中国慢性肾脏病患者约1.2亿,发病率约为10%。而在广东,中山大学第一附属医院曾对广东地区7200多名研究对象进行流调后显示,广东慢性肾病的人群发病率为12.1%,明显高于全国平均水平,接受血液透析治疗的慢性肾衰竭患者数居全国前三位。

    这高于全国平均水平的肾脏病发病率,是否和煲汤有关系?

    “煲汤是因素之一,但不是全部因素。”广东省人民医院中医科副主任医师林举择表示,广东人的饮食习惯是爱吃海鲜,喜喝啤酒、老火靓汤等,另外,部分地区还吃得比较咸。

祀与戎:彭世瑜:RSA:jsencrypt/Python实现加密

RSA:jsencrypt/Python实现加密

简介:
RSA:jsencrypt/Python实现加密
+关注继续查看

RSA公开密钥密码体制

目录

一、浏览器中使用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

安装

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 RSA


def 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 False

    hex_str = ''

    # 按位转换成16进制
    for x in b_str:
        h = hex(x)[2:]
        h = h.rjust(2, '0')
        hex_str += h

    # 找到模数和指数的开头结束位置
    m_start = 29 * 2
    e_start = 159 * 2
    m_len = 128 * 2
    e_len = 3 * 2

    modulus = hex_str[m_start:m_start + m_len]
    exponent = hex_str[e_start:e_start + e_len]

    return modulus, exponent


def 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)加密的两种方式



祀与戎 , 版权所有蜀ICP备14023000号-6丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:祀与戎:彭世瑜:RSA:jsencrypt/Python实现加密
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Optimized by WPJAM Basic。