请教一下怎么回事?谢谢了。
python用的是Crypto
c用的是openssl
同一个字符串,两段代码算出来的签名不一样,网上搜索说可能是 padding不一样造成的,但也没找到具体的问题。
总不能python签名,别的语言验签就验不了吧?
python:
def get_sign(message, private_key):
with open("client-private.pem") as f:
key = f.read()
private_key = RSA.importKey(key)
rsa = PKCS1_v1_5.new(private_key)
rsa_message = rsa.sign(SHA.new(data=message)) # 生成签名
rsa_message = binascii.hexlify(rsa_message)
return rsa_message
c:
unsigned __int8 *__fastcall private_key_encrypt(RSA *key, unsigned __int8 *data, int len, int *decrypt_len)
{
int *v4; // r14
unsigned int v5; // er12
int v6; // eax
unsigned __int8 *v7; // rbx
v4 = decrypt_len;
v5 = len;
v6 = 256;//RSA_size();
v7 = (unsigned __int8 *)malloc(v6);
*v4 = RSA_private_encrypt(v5, data, v7, key, 1LL);
return v7;
}
--
FROM 223.104.244.*