相关依赖:
- gmssl==3.2.2
- pycryptodome == 3.9.7
相关实现
import abc
import base64
from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
from gmssl import sm2
class BaseSignatureUtil(metaclass=abc.ABCMeta):
@abc.abstractmethod
def signature(self, *args, **kwargs): pass
@abc.abstractmethod
def verify_signature(self, *args, **kwargs): pass
class RsaWithSha256Util(BaseSignatureUtil):
@staticmethod
def signature(sign_data: str, private_key: str) -> str:
rsa_key = RSA.importKey(private_key)
signer = PKCS1_v1_5.new(rsa_key)
_rand_hash = SHA256.new()
_rand_hash