即時新PHP加密和即時通訊使用openssl做密碼操作。 Openssl Rsa是需要PEM格式,但我有十六進制模數(n),私人指數(d)和公開指數(e)。 如何從這些組件生成私鑰? 對不起,我的英語。如何從PHP中的指數,模數和私有指數獲取私鑰?
回答
RSA私鑰通常也有一堆其他參數。用於創建模數(p和q)和其他參數的素數便於使用中國剩餘定理來加速解密。如果你沒有,那麼我只是創建一個公鑰。您可能可以用PRIVATE idk替換PUBLIC。
總之,這裏的一些代碼(使用phpseclib 1.0.3):
<?php
include('Crypt/RSA.php');
include('Math/BigInteger.php');
$rsa = new Crypt_RSA();
$rsa->loadKey([
'e' => new Math_BigInteger('...'), // base-10 by default
'n' => new Math_BigInteger('...') // base-10 by default
]);
echo $rsa;
我用15作爲E和N(這實際上不是RSA目的的有效組合,但用於演示目的是罰款),並得到這回:
-----BEGIN PUBLIC KEY-----
MBowDQYJKoZIhvcNAQEBBQADCQAwBgIBDwIBDw==
-----END PUBLIC KEY-----
非常感謝您的回答。我之前得到了這個代碼,我的想法和你一樣, (http://nmichaels.org/rsa.py) 但在上面的網站做了rsa enc/dec只有3個組件。 不知何故,他/她從十六進制n,e,d組件獲取私鑰並使用它們解密數據。 –
@ MuhammedN.Kartal - 就像我說過的,你可以重命名BEGIN PUBLIC KEY來開始私鑰。 http://stackoverflow.com/a/21289989/569976討論了RSA私鑰格式。請注意,素數和CRT參數不是可選的。 otherPrimeInfos是可選的,它用於兩個以上素數的RSA私鑰。 – neubert
我會讀這個關於私鑰格式的討論。非常感謝。 –
- 1. 如何從私鑰中提取指數和模數?
- 2. 從模數和私人指數在JavaScript中的RSA私鑰
- 3. 我有模數和私人指數。如何構建RSA私鑰並簽署消息?
- 4. 基於模數和公開指數重新生成公鑰和私鑰
- 5. 無法提取Android KeyStore私有指數
- 6. 如何在cryptGenerateKey函數之後提取指數「e」和私鑰「d」? (cryptlib庫)
- 7. 加密:使用模和指數生成RSA私鑰
- 8. 如何從cacert.pem獲取公鑰/私鑰
- 9. Android指紋API和私鑰/公鑰
- 10. 如何從另一個類中的私人指針指向的類獲取私有信息?
- 11. 獲取PHP中的私鑰.pfx
- 12. 公鑰/私鑰中的RSA密鑰值和模數
- 13. 通過使用Java安全模數,公共和私人指數還原RSA私鑰
- 14. 如何從vimeo私人視頻獲取私人元數據
- 15. 處理指向私有類中的數組的指針。
- 16. 如何從公鑰中找到模數和指數?
- 17. VB.Net指函數/私有子本身
- 18. 需要私鑰和公鑰的數量?
- 19. 如何在PHP中使用私有和公有指數以及模數來解密RSA消息?
- 20. 從證書獲取公鑰/私鑰
- 21. 如何從SSH-RSA提取指數和模量密鑰文件
- 22. 獲取密鑰從多維指數
- 23. Javascript ECDSA獲取私鑰和公鑰?
- 24. 獲取X509Certificate2私鑰和公鑰
- 25. PEM_read_RSAPrivateKey:獲取RSA密鑰公共模數和指數
- 26. 生成從模公鑰和指數
- 27. UPC中共享數組的私有指針數組
- 28. 如何從ssh-agent中提取私鑰?
- 29. 如何從商店中讀取私鑰
- 30. 從字節數組中創建私鑰
你有一些鏈接到你認爲有用/已檢查的信息?請將它們添加到您的問題。 –
http://nmichaels.org/rsa.py 例如,上面的站點正在獲取n,e,d組件並執行rsa crypt操作。 我很好奇,他/她如何從這3個組件獲得私鑰解密? –
@ MuhammedN.Kartal - 你可以用n和d做解密,但它不會像它那樣高效,因此爲什麼現實世界的實現使用額外的CRT參數。真實RSA實現和教科書RSA實現可以做不同的事情。教科書-RSA實現另一件事是不做的:填充。教科書-RSA實現受明確的明文攻擊(除其他外)在課堂上並不是真正的問題,因爲教室的目標是給你/一般/想法。 – neubert