我試圖使用通過POST方法從應用程序發送的密鑰來加密字符串。POST方法發送加密密鑰。但腳本無法正常工作幫幫我。使用C#進行POST加密和解密的方法使用C#
回答
它不起作用的原因是你的填充是錯誤的。 PKCS7是重複填充長度的字節值(即,如果填充2個字節,則爲00000010 00000010)。它不是字符串值「0202」,看起來沒有任何php函數可以正確執行此操作,所以我會使用不需要填充的操作模式。 OFB被c#和php支持。
你不能使用固定的IV。對於cbc模式,對於OFB來說,它是相當不安全的,它完全不安全。使用mcrypt_create_iv每次獲得一個新的隨機數。然後,當您發送它時,只需將IV添加到密文(不需要加密)即可。需要注意的是,您可能已經遇到的一個問題是,php使用字符串,而C#使用byts作爲IV,並且即使您現在也可能無法獲得正確的轉換。我可能會使用十六進制和函數來轉換/從那裏只是爲了確保。第二,當人們篡改數據時,您需要使用某些東西來檢測,否則他們可能會通過底層加密庫中的錯誤代碼/計時問題讀取密文。 Hmacs運行良好,並且支持here for php和c#。 HMAC你的IV +密文消息並在其前面輸出。另一方面,在相同的數據上運行c#等價函數,然後比較HMAC值。如果他們是一樣的,那麼你的安全,如果不是,拒絕。
Thanks.I'm不是專家在加密或PHP.Can請給我一個例子 – techno 2012-04-16 14:58:00
如果你只是想加密數據當您發送它時,請使用HTTPS/TLS。應該更容易,更安全 – imichaelmiers 2012-04-16 17:37:11
號我不能這樣做。 – techno 2012-04-17 11:39:46
- 1. 使用C++進行加密和解密
- 2. 目標c和C#之間使用AES128進行加密/解密
- 3. 使用AES進行Objective-C加密並使用PHP解密
- 4. 使用AES加密C並使用Python進行解密
- 5. 如何使用rsa c僅公鑰進行加密和解密#
- 6. 在C++中使用IO文件進行加密和解密
- 7. 在C#中使用MD5CryptoServiceProvider進行加密和解密
- 8. 加密與C++和WinCrypt(RSA算法)庫和解密使用C#
- 9. PgP加密和解密使用BouncyCastle c#
- 10. 無法使用使用Java加密的Obj-C對AES數據進行解密
- 11. 解密使用Objective-C與Java進行AES加密的數據
- 12. 如何使用加密/解密使用post(JSON)方法發送加密數據?
- 13. C#庫使用AES進行加密/解密
- 14. 使用OpenSSL進行AES-256/CBC加密並在C#中解密
- 15. AES:使用CCCrypt()方法和使用C#解密加密,輸出是錯誤
- 16. 使用字典進行加密/解密
- 17. 使用DataProtection.DataProtector加密/解密c#
- 18. 使用密鑰文件進行加密,使用密碼進行解密
- 19. 使用簡單的替換密碼進行加密和解密
- 20. 使用隨機生成的密鑰進行加密和解密?
- 21. 使用Java進行AES加密並使用Javascript進行解密
- 22. 使用PGP進行加密並使用GPG進行解密
- 23. Rijndael使用Java加密,然後使用C#和EnterpriseLibrary解密4.1
- 24. 需要使用PEM密鑰進行加密和解密
- 25. java使用密鑰對進行加密和解密?
- 26. 使用objective-c加密和解密密碼
- 27. 使用C#進行加密從這些PHP代碼中進行AES加密和解密
- 28. 在javascript中加密並在C#中使用AES算法進行解密
- 29. 使用密碼進行字符串加密/解密c#Metro風格
- 30. 使用DES和密碼進行加密
「不能正常工作」是如何體現的?你有錯誤嗎?結果是否錯誤? *結果如何*錯了? – deceze 2012-04-15 08:52:32
@cillosis請參閱編輯 – techno 2012-04-15 09:21:57
@deceze請參閱編輯 – techno 2012-04-15 09:35:44