Python 使用公钥的带SHA512的RSA

Python 使用公钥的带SHA512的RSA,python,encoding,cryptography,rsa,sha,Python,Encoding,Cryptography,Rsa,Sha,我拥有服务证书中的rsa公钥和私钥。我需要使用公钥通过rsa对我的数据进行编码,使用sha512,并将其与获取的参数校验和进行比较。如果编码数据等于校验和,则操作将成功 所以我找了一个在线编码工具来测试这一切,但是 我不能使用我的公钥 校验和和和编码数据大小不同,例如: (代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>40404040404040404040404141414141414141414141414141414140404040404040

我拥有服务证书中的rsa公钥和私钥。我需要使用公钥通过rsa对我的数据进行编码,使用
sha512
,并将其与获取的参数
校验和进行比较。如果编码数据等于校验和,则操作将成功

所以我找了一个在线编码工具来测试这一切,但是

  • 我不能使用我的公钥
  • 校验和和和编码数据大小不同,例如:
  • (代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>代码>4040404040404040404040414141414141414141414141414141414040404040404040404040404040404040414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141BBBBBBBBBBBBBBBBBBBBBBB7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 2 2 2 2 2 2 2 2 2 2 2 2层层层层层层层层层BBB7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 B6CB828061D54F92D66D8FE8955F2F6C10FC8FF7ABD399B0FD5F40C464440A6B8FDEA4E5718C12ECF1C4952089FA26A7A3D6AB8BAE8D02C598133A2FB8DD85109EDAC2301C492DCB55FFA54C508349A51AD735573B8CC8D71518' 数据顺序;2230808c-6fa8-71f5-b6ff-54085e4149db;活动沉积;订单号#19;署名;斯托洛托;地位1. 编码的_data='CA0D0D2B7EFC86C56CE098A5F3D684C850F3918A9E7F1DB75397A06360CB200C'
    我想我没有足够的密码学知识,请给我描述一下


    另外,我使用python

    此代码将加密您的编码消息,并使用sha512对密文进行摘要以获得校验和(但它不等于您的校验和,我不知道您是如何获得此校验和的)。您可以使用公钥对消息进行加密,而解密是使用私钥完成的(RSA确实支持密钥的概念,因为它是一种加密之王,毕竟,它是一个哈希函数
    sha512
    ,它不支持密钥的概念,因为它用于指纹文档)


    为什么不能使用公钥?RSA不支持任何密钥。谢谢你的回答。但是已经有了服务提供给我的公钥。如何使用它?@Hahan不太好这很容易公钥有两个组件一个叫做
    e
    通常
    65537
    另一个是
    n
    ,所以假设你的消息是
    x
    ,密文是
    y
    ,然后
    y=x^e mod n
    你也可以使用pycryptodome作为
    key=RSA。导入密钥(外部密钥)
    所有其他代码将保持不变,除非您无法解密,因为
    密钥
    对象没有私钥组件。
    from Crypto.Cipher import PKCS1_OAEP
    from Crypto.PublicKey import RSA
    from Crypto.Hash import SHA512
    
    encoded_data = b'CA0D0D2B7EFC86C56CE098A5F3D684C850F3918A9E7F1DB75397A06360CB200C'
    
    key = RSA.generate(2048)
    rsa = PKCS1_OAEP.new(key)
    ciphertext = rsa.encrypt(encoded_data)
    hash_ctx = SHA512.new()
    hash_ctx.update(ciphertext)
    hash = hash_ctx.digest()
    print("Ciphertext is {}".format(ciphertext.hex()))
    print("Hash is {}".format(hash.hex()))