回答
不要試圖拿出基於基本的加密算法(如RSA)的自定義加密方案。安全協議很難正確使用;您不僅需要考慮對數據進行加密或簽名,還需要考慮中間人攻擊,重放攻擊,填充oracle攻擊等等。
我建議您使用易於使用和理解的標準化,經過充分測試的安全協議:使用HTTPS。
但是之後我必須購買一個非常昂貴的證書 –
您可以使用隨應用程序一起提供的自簽名證書。 – dtb
@JamieHunt如果你從「更多公認的」機構購買它們,它們只是非常昂貴。那裏有很多便宜的東西,它們可以完全相同的目的。 –
.NET包含用於RSA加密/解密的標準函數。
要在PHP中使用RSA,您可以在Google中找到很多實現。
只有你將在未來的跌跌問題是在PHP和.NET PROGRAMM之間傳輸數據:
- 你可能要使用的base64字符串
- ,如果你想用GET或POST發送數據你必須使用this解決方案
ADDED
RSA是實現算法不難實現。
this怎麼辦?
你能推薦任何RSA php實現嗎?我似乎找不到一個好的,他們都需要我在服務器上安裝一個PHP模塊,或者非常緩慢,過時和無人維護。 –
@JamieHunt,我更新了我的答案 – Nikita
我建議使用RSA的標準實現,而不是自制的。正如我在我的回答中解釋的那樣,您需要簽名,而不是加密。 –
你想要做什麼通常被稱爲簽名而不是加密。
即使在教科書RSA簽名爲「具有私有密鑰,解密與公衆一個加密」解釋說,在現實中,它採用了稍有不同的程序(在部分實際的「加密」)之前,因此,你有不同的用於簽名而不是用於加密。
對於PHP中的簽名,看起來您可以使用openssl_sign函數。
要檢查C#中的簽名,可以使用.NET的RSACryptoServiceProvider類,並使用它的VerifyData方法。當然,如果您的目標僅僅是互聯網中兩個實體(即從服務器到客戶端)之間的認證傳輸,那麼使用SSL/TLS就是標準解決方案。如果您在應用程序中分發根證書,您可以使用自己的證書(或來自您自己的CA的證書),而不使用來自商業CA的昂貴證書。
- 1. C++:覆蓋public/private繼承
- 2. Dim vs Private/Public
- 3. Public vs Private
- 4. Public vs Private AttachedProperties
- 5. javascript - private/public members/functions
- 6. Private或Public TFS Build
- 7. restful-java private vs public
- 8. Android marketplace - public key
- 9. 加密/解密public/private android
- 10. System.IO.IOException:----- END RSA PRIVATE KEY not found
- 11. Typescript private setter public getter convention
- 12. python import - public or private convention
- 13. Ruby on Rails中的Public/Private
- 14. 可以將`public private(set)var numberOfEdits = 0`寫爲`public(get)private(set)var numberOfEdits = 0`?
- 15. Thales Payshield HSM RSA Private Key
- 16. 由Openssl生成的證書包含「PRIVATE KEY」而不是「RSA PRIVATE KEY」
- 17. 爲什麼'Private Sub`而不是`Public Sub`
- 18. iPhone SDK @package vs. @private vs @public and struct
- 19. 自動將public改爲private(Java)
- 20. 瞭解打字稿類中的「public」/「private」
- 21. 更新Asana任務的「public」/「private」狀態?
- 22. CA1047'Make member raise private,public or internal'and C++/CLI events
- 23. git push origin master:permission denied(public key)error
- 24. C#:IComparable implementation private
- 25. C++ Private Structures
- 26. 無法加載私鑰。 (PEM例程:PEM_read_bio:no start line:pem_lib.c:648:Expecting:ANY PRIVATE KEY)
- 27. 設計決策:Order類中的OrderNumber屬性 - Public還是Private?
- 28. object-private Vs class-private
- 29. 如何讓我的代碼安全? - Private vs. Public
- 30. 訪問標識符的實例[public,protected,private]
你正在使用什麼樣的加密方法,你有證書嗎?大多數加密問題都可以用bouncycastle來解決。 HTTP://www.bouncycastle。org/csharp/ – albertjan
使用RSA,這就是全部)) – Nikita
還沒有使用任何一種加密方式,寧願使用不是證書的東西,只要可能的話,儘可能使用密鑰 –