1
我需要發送一個RSA使用公鑰加密的密碼(以及其他一些數據)。下面是從密碼的文檔的精確操作的指令:PHP RSA加密邏輯
- 編碼密碼Base64和確保UTF-8編碼
- 加密的口令與RSA與提供的公共密鑰,沒有塊模式,和PKCS1Padding
- 編碼導致加密的Base64中以可靠的UTF-8編碼
下面是我使用我的代碼似乎是正確的:
function encryptPassword($pass) {
$pass = base64_encode($pass);
$fp = fopen("./cert.crt", "r");
$publicKey = fread($fp, 8192);
fclose($fp);
openssl_get_publickey($publicKey);
openssl_public_encrypt($pass, $cryptedText, $publicKey, OPENSSL_PKCS1_PADDING);
return base64_encode(utf8_encode($cryptedText));
}
我在對方說錯誤,說密碼無法解碼。除了錯誤信息之外,他們的支持基本上是不存在的,他們說一切都是正確的。我的問題是,我是否根據文檔發送了他們要求的內容?
在此先感謝!
感謝您的答覆。當它不起作用時,我把那個utf8_encode作爲一個絕望嘗試扔進去。我已經拿出來了,現在也在傳遞公共密鑰資源,但是我仍然從服務器收到相同的錯誤。 – rchamberlin 2015-02-11 20:38:53
你可以試試'$ pass = base64_encode(utf8_encode($ pass));',但除此之外,我認爲這符合描述。 – 2015-02-11 20:44:31