我有一個web服務(Java),它需要所有情況下的密碼。但密碼必須安全地到我身邊。是否有適用於所有平臺的標準方式 - > java加密/解密。我如何解密一個可能來自隨機平臺的字符串(php,.net,iPhone)。webservice的字符串解密
回答
通常密碼使用某種算法說(MD5)加密並與服務交換......您不必解密密碼......它就像您創建密碼的MD5哈希字符串,密鑰是實際的密碼它自我。
所以在服務器上,你將存儲實際的密碼的MD5哈希和每個客戶端將創建給定的密碼的MD5哈希字符串,最後你會驗證密碼驗證兩個散列串...
你會很容易找到的java碼在線創建MD5哈希......一個例子是
public static String convertStringToMD5Hash(String string) {
byte[] hash;
try {
hash = MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("MD5 not supported?", e);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("UTF-8 not supported?", e);
}
StringBuilder hex = new StringBuilder(hash.length * 2);
for (byte b : hash) {
int i = (b & 0xFF);
if (i < 0x10)
hex.append('0');
hex.append(Integer.toHexString(i));
}
return hex.toString();
}
免責聲明:代碼工作在我的機器上,並可能需要 改進/優化生產使用
使用WS-Security用戶名令牌,以確保它能夠解決跨平臺問題。
http://wso2.org/library/240(壁壘)
或
使用Apache WSS4J
http://www.ibm.com/developerworks/webservices/library/ws-Axis2/index.html
就像@CodesInChaos在他的評論中說,使用SSL/TLS。如果你真的讚美安全,不要考慮其他選擇。如果我們想在這方面有創意,那麼您承擔風險...
由於在Android,Windows等平臺上進行反向工程的機會,在移動應用程序中泄露SSL證書也存在爭議。 – Adil
@AdilMughal該協議被稱爲安全。如果我們開始討論基於證書更改的攻擊,則不存在安全系統。 –
- 1. 解密字符串加密
- 2. 加密/解密字符串
- 3. 解密字符串的NSDateFormatter
- 4. Android的JNI字符串加密/解密
- 5. JCPABE Encypt解密字符串
- 6. 瞭解字符串加密
- 7. 問題解密字符串
- 8. 解密AES字符串
- 9. 如何解密字符串
- 10. PHPSecLIB加密字符串和VB.NET解密字符串
- 11. 加密和解密字符串
- 12. 加密和解密字符串
- 13. PHP:加密/解密短字符串
- 14. 加密/解密連接字符串
- 15. OpenSSL加密/解密一個字符串
- 16. 解密一個SQL加密字符串
- 17. PHP-Codeigniter字符串加密和解密
- 18. 加密和解密一個字符串。
- 19. RSA字符串加密\解密
- 20. VB.net解密rinjdael-128加密字符串
- 21. 加密/解密字符串(PHP)
- 22. 解密SHA加密字符串
- 23. 加密和解密一個字符串
- 24. 如何使用密鑰字符串解密SHA-256加密的字符串?
- 25. 如何解密加密的字符串與未知解密
- 26. 解密的字符串不一樣的預加密的字符串
- 27. 簡單的字符串加密/解密與一個小的結果字符串
- 28. 加密密鑰和加密字符串的解密
- 29. 解密連接字符串中的App.config
- 30. 解密一個已知的字符串
該標準稱爲SSL/TLS。不要嘗試任何可愛的哈希技術,你會得到他們錯誤的。 – CodesInChaos