Golang rsa沒有NO_PADDING?
但openssl是好的。 對於加密數據對接等語言,加密的數據與Golang無法正常解密,但使用PHP和Openssl可以正常使用,後來發現像Golang不支持NO_PADDING解密,似乎只有PKCS1。
Openssl增加參數 - raw可以正常解密。私鑰在上面,是一個密碼和解密正確的值。
有人可以幫我看看如何解決?golang rsa解密沒有填充?
$ cat private.pem
-----BEGIN RSA PRIVATE KEY-----
MIIBOgIBAAJBANJS/xu+NtmDqobnhCdLjWk46aYbBk/mQrLcozAIbQLFG2mgkrxf
B5+CgtISKpKfmRfCO2NhceK+YedaMMBUxn8CAQMCQQCMN1S9KXnmV8cEmlgaMl5G
JfEZZ1mKmYHMkxd1WvNXLNuke9ntKwti8zG1lAFcOVHnm/uYsNdua+lvvQlEgBUL
AiEA/c8ezGaNUFwEAltwTEFtFItT5PyOXlWIdPAZ7j160lkCIQDUI8f/chEmLxG1
5kPcRtyJsQRdAcnQZ5QOz6S0nBnUlwIhAKk0vzLvCOA9WAGSSt2A82MHjUNTCZQ5
BaNKu/Qo/Iw7AiEAjW0v/6FgxB9hI+7X6C89sSCtk1aGiu+4Cd/DIxK74w8CIB4q
rA1k247JrqKTGlqSHVr1Ta+h3BPbwFKCi5CiDOjV
-----END RSA PRIVATE KEY-----
$ xxd data.txt
00000000: 6d4b 5dab 6d64 45e1 e4cb 0ea8 20df b724 mK].mdE..... ..$
00000010: cfe5 db3e 75c4 e80e 2337 4f08 1b36 87b4 ...>u...#7O..6..
00000020: 7550 47d4 ed60 576a a160 2d01 3cf7 4c50 uPG..`Wj.`-.<.LP
00000030: 7e44 6432 1f9d cfe2 2e9f 4f89 f815 ae01 ~Dd2......O.....
$ base64 -i data.txt
bUtdq21kReHkyw6oIN+3JM/l2z51xOgOIzdPCBs2h7R1UEfU7WBXaqFgLQE890xQfkRkMh+dz+Iun0+J+BWuAQ==
$ cat data.txt | openssl rsautl -decrypt -inkey private.pem -raw
qYnYKT2mxuXR5XB615gOenqxOnIUjWs7
你說的是什麼意思..請使用英語使其更容易理解。 – Brij
我認爲我們應該重新打開這個問題:語言不太好,但1)作者應該不是母語; 2)問題的本質是可以辨別的,可以表述爲「爲什麼go的'crypto/rsa'包僅支持OAEP和PKCS#1填充方案,並且不允許在沒有填充的情況下對數據使用RSA操作?」。我認爲,答案可能是由[這裏]概述的原因(http://crypto.stackexchange.com/a/15184)(基本上相當於「不要那麼做」),但OP仍然可能需要處理遺留數據/協議,他們的擔憂是有效的。 – kostix
@ohko,你可能想在[項目的bugtracker](https://github.com/golang/go/issues)中提交一個bug。如果你這樣做,請確保:1)嘗試制定爲什麼你需要RSA操作的支持,而不需要填充 - 不要只是在那裏張貼一個鏈接到這個討論; 2)請發佈您在此提交的問題的鏈接(作爲評論) - 以供將來參考。 – kostix