通过rsa 的模量与指数 生成对应的rsa公钥

在这里插入图片描述

passwordRSA: function() {
                if (this.isMsgLogin)
                    return !1;
                var t = $("#J_Exponent").val()
                  , i = $("#J_Module").val();
                if ("" == t || "" == i)
                    $("#J_Timestamp").removeAttr("name"),
                    this.$dom.inputs.password2.removeAttr("name");
                else {
                    var n = new s.RSAKey;
                    n.setPublic(i, t);
                    var e = n.encrypt(this.$dom.inputs.password.val());
                    this.$dom.inputs.password.removeAttr("name"),
                    this.$dom.inputs.password2.val(e)
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization



modulus = "98639b48645bdaadc930c1e2316b9d07223f3808e9192788a1e2183ff5a33f393ff51f9a6f65050600f4e77890c333c18ff2d5ca9e2259a1696aa4398c7ca809034911671ef06e760a12da4aa285fcd028edaa5e8e3a70d1fed92649ee7189ef0bec70ffa8e26ce57ede52d5593bc36c48abe16c50cc1fd7c1479e53cb0cde99"
exponent = 10001


# 从little-endian格式的数据缓冲data中解析公钥模数并公钥
def populate_public_key(modulus, exponent):
    # convert bytes to integer with int.from_bytes
    # 指定从little格式将bytes转换为int,一句话就得到了公钥模数,省了多少事
    n = int(modulus,16)
    e = exponent
    # 使用(e, n)初始化RSAPublicNumbers,并通过public_key方法得到公钥
    # construct key with parameter (e, n)
    key = rsa.RSAPublicNumbers(e, n).public_key(default_backend())

    return key


# 将公钥以PEM格式保存到文件中
def generate_pub_key(pub_key, pem_name):
    # 将公钥编码为PEM格式的数据
    pem = pub_key.public_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PublicFormat.SubjectPublicKeyInfo
    )
    print(pem)

    # 将PEM个数的数据写入文本文件中
    with open(pem_name, 'w+') as f:
        f.writelines(pem.decode())
    return pem



if __name__ == '__main__':
        pub_key = populate_public_key(modulus, exponent)
        pem_file = r'pub_key.pem'
        generate_pub_key(pub_key, pem_file)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值