我必須通過套接字發送一個從ANSI C應用程序到Java應用程序的簡短字符串 - 已經完成。因爲它的重要數據,我必須使用密碼「abc123」來加密它。我該如何以最簡單的方式做到這一點?在ANSI C中加密,在Java中解密
0
A
回答
1
通過「套接字」我假設你的意思是TCP/IP連接。在這種情況下,您應該考慮使用安全套接字層(SSL)。 SSL幾乎可以解決與通過線路發送數據相關的大部分安全問題。唯一需要解決的是如何將密鑰分發到管道的每一端。
我強烈建議您不要推出自己的系統。 Crypto很難正確使用,因此請使用現有的經過良好測試的實現。
如果你正在談論一個Unix域套接字,那麼你可能不需要打擾加密,因爲域套接字只是進程間管道。
1
如上所述,它很大程度上取決於您想要的安全性,明智的答案是找到相同密碼系統的Java和C實現並使用它們。
如果您願意接受通常伴隨家庭釀造的低安全性,我認爲您在問題中採用「最簡單的方式」,並假設兩端的源代碼和運行時都是安全的。 I.E.您只需要擔心被截獲的傳輸中的數據。您可以使用您希望的任何密碼作爲僞隨機數生成器的種子(剩餘部分通過字節索引或類似的方法劃分大質數),並將數據字節與生成的隨機數異或。不是最安全的,但會很快實施。
uint8_t encrypt(uint8_t iData, size_t iPos) {
// Super large prime, our 'password', best kept super secret
const uint64_t iSeed = 32416190071;
// Mostly to stop divide by zero
// Also starting in the obvious place gives more info on the prime
const size_t iOffset = 10;
uint8_t iPad = iSeed % (iPos + iOffset);
return iPad^iData;
}
+0
您必須確保您的PRNG在Java和C之間也一樣。 – 2011-05-05 17:19:08
0
Char encrypt(char ch) {
Return (ch ^0x55);
}
相關問題
- 1. 在java中加密,在node.js中解密
- 2. 在C++中加密/解密在x86中
- 3. 在Objective-C中加密並在Java中解密的算法
- 4. 在C#中解密使用Java加密的密碼
- 5. AES加密C#解密Java?
- 6. Java加密C#解密
- 7. C#/ Java | AES256加密/解密
- 8. rc4在java中的加密和解密
- 9. AES加密,解密在Java中
- 10. XOR加密在Java中:解密
- 11. 在java中的加密/解密
- 12. 在PHP中複製C#加密/解密
- 13. 加密在C /解密ROT ++
- 14. 加密和解密在C#
- 15. AES在C加密解密
- 16. 在C#中加密加密#
- 17. C#(加密)和Java(解密)之間的AES加密/解密
- 18. 文件加密和解密在Java中,不工作解密
- 19. 在android中加密解密
- 20. 在C++(OpenSSL)中加密AES,在C#中解密
- 21. 解密在Java中
- 22. 如何在c sharp中解密「用java加密的字符串」?
- 23. 加密在Java中(AES),解密C++(OpenSSL的)
- 24. 解密AES加密在C#中使用加密的js
- 25. 在perl中加密,在delphi7中解密
- 26. 在JSP中加密,在PHP中解密
- 27. 在Unity中加密,在Node.js中解密
- 28. Java加密/解密
- 29. 在c中解密#
- 30. 在iOS中加密和解密密碼
你想要簡單性還是安全性? – 2011-05-05 15:40:00
最簡單的可能只是XORing ...安全與您挑選的密碼系統。 – soandos 2011-05-05 15:47:39
你可以在每個字節上執行'~'。簡單但不安全。 – 2011-05-05 15:48:29