Q
加密字符串的長度
14
A
回答
21
塊密碼諸如DES,3DES和AES只能在字節塊進行操作。DES和3DES上的上的16個字節的塊的8個字節和AES塊進行操作。
爲了解決這個問題,你通常在加密之前對你的明文應用一個可逆的填充,它通常是「PKCS」-padding(也叫PKCS5-或PKCS7-padding)。
PKCS填充至少添加一個字節,以使填充文本的長度可以被塊長度(3DES的8個字節)整除。填充字節的值是添加的字節數。 FX。 ABCDEF填充到ABCDEF0505050505,0011223344556677填充爲0011223344566770808080808080808.請注意,這很容易刪除:您只需查看填充字節的最後一個字節,驗證它是否在1和塊長度之間,並刪除該字節數從最後(驗證每個被刪除的字節具有正確的值)。
最後,要回答你的問題:假設你使用的是帶有CBC加密和PKCS-填充3DES - 你大概是 - 長度爲n的字符串加密的長度是:
n + 8 - (n % 8)
1
Triple DES使用三個56位DES密鑰,給168個密鑰。它的塊大小是64位。
4
使用Triple DES不會更改字符串的長度,但會將其舍入到下一個64位邊界。如果你打算「顯示」它,你將不得不編碼它(如Base64雖然
至於其他算法,很難回答,因爲有很多塊密碼將總是填補輸入以匹配他們塊大小而許多流密碼也不會。
相關問題
- 1. XOR加密的蟒蛇 - 奇數長度字符串
- 2. OpenSSL - 如何確定rsa加密字符串的正確長度?
- 3. 加密/保護短字符串爲長
- 4. 使用RSA加密長字符串(Java)
- 5. unicode字符串的長度
- 6. 時刻字符串長度
- 7. 自動字符串長度
- 8. 字符串長度問題
- 9. 比較字符串長度
- 10. C字符串長度
- 11. 字符串長度問題
- 12. Firebase logEvent字符串長度
- 13. Java Unicode字符串長度
- 14. Rails Json字符串長度
- 15. 字符串長度問題
- 16. 限制字符串長度
- 17. 加密/解密字符串
- 18. 解密字符串加密
- 19. 加密字符串
- 20. 字符串加密
- 21. 函數strncpy字符的字符串問題增加長度
- 22. 密碼的源字符串的最小長度
- 23. 獲取字符串的字節長度
- 24. 一個字符串的字節長度
- 25. 基於字節而非長度的字符串長度驗證
- 26. 將可變長度字符串分配給固定長度字符串
- 27. 未找到分隔符/字符串長度超過DDL長度
- 28. C#:如何獲得字符串中的字符串的長度[]
- 29. DataTable中的字符串DataColunm:限制字符串的長度
- 30. 使用NASM的字符串的長度
請詳細說明。例如,如果我有一個長度爲100個字符的字符串,我將如何計算加密字符串的長度? – 2009-01-19 10:46:54
(string.length/8)+ 1,假設爲8位字符 – Keltia 2009-01-19 10:58:14
長度以字符爲單位(如果您願意,也可以是字節),因此length/8使用64位塊。 – Keltia 2009-01-19 11:01:05