我打算在密碼+ salt上運行SHA256
,但是我不知道在設置MySQL數據庫時多長時間使我的VARCHAR
。什麼是好長度?SHA256散列需要多長時間?
回答
sha256的長度是256位 - 正如其名稱所示。
如果您使用的是十六進制表示法,則每個數字代碼爲4位;所以你需要64位數字來表示256位 - 所以,你需要一個varchar(64)
或char(64)
,因爲長度總是相同的,根本不變。
而且演示:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
會給你:
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
即具有64個字符的字符串。
爲什麼要讓它變成VARCHAR?它沒有變化。它始終是64個字符,可以通過將任何內容運行到one of the online SHA-256 calculators來確定。
這將是固定的64個字符,所以使用char(64)
我更喜歡使用BINARY(32),因爲它是最優化的方式!
您可以從(00到FF)中放置32位十六進制數字。
因此BINARY(32)!
+1 - 我喜歡優化...給其他人在這發生......用於MySQL ...你可以使用'UPDATE ... SET hash_column = UNHEX(sha256HexString)'。然後,當檢索它時,你選擇HEX(hash_column)AS hash_column'。 – 2014-09-17 21:20:03
爲SHA256的256個比特編碼選項:
- Base64的:每焦炭=
CHAR(44)
6位包括填充字符 - 十六進制:每焦炭=
CHAR(64)
- 二進制4個比特:8個每字節位=
BINARY(32)
Base64是每4個字符3個字節,所以即使32個字節適合43個字符,實際上也需要44個。額外=被添加爲最終字符 – Wilco 2015-06-02 21:23:59
- 1. 需要多長時間才能解密sha256哈希?
- 2. sha256摘要循環需要多長時間才能達到原始散列或開始循環?
- 3. sha1散列需要多長時間才能生成?
- 4. SHA-1需要多長時間才能創建散列?
- 5. TopicClient需要多長時間?
- 6. GC需要多長時間?
- 7. NSCalendarUnitEra需要多長時間?
- 8. 需要多長時間才能破解HMAC sha256摘要私鑰給定數據
- 9. 時間需要多長時間
- 10. 散列與SHA256
- 11. 驗證sha256散列
- 12. 運行scipy.test('full')需要多長時間?
- 13. 執行腳本需要多長時間?
- 14. 主鍵刪除需要多長時間?
- 15. printk命令需要多長時間?
- 16. 測試套件需要多長時間?
- 17. CreateThread需要執行多長時間?
- 18. 需要多長時間學習backbone.js
- 19. Compact Framework和JIT。需要多長時間
- 20. Glibc需要多長時間來編譯?
- 21. C2DM註冊需要多長時間
- 22. 使用TDD需要多長時間?
- 23. 插入150K行需要多長時間?
- 24. 密碼認證需要多長時間?
- 25. CFmail需要發送多長時間?
- 26. 檢索數據需要多長時間?
- 27. 合同處理需要多長時間?
- 28. 執行循環需要多長時間?
- 29. 製作rabbitmq需要多長時間?
- 30. 吞噬任務需要多長時間?
在任何人閱讀本文之前,請務必遵循此建議並使用SHA- *'哈希密碼,[請先閱讀本文](https://security.stackexchan ge.com/questions/16354/whats-the-advantage-of-using-pbkdf2-vs-sha256-to-generate-an-aes-encryption-key)。 – c00000fd 2017-05-10 05:31:33
具有示例的詳細博客:http://sforsuresh.in/mysql_varchar_max_length/ – 2017-09-28 11:22:38