我目前正試圖創建一個擁有散列如MD5哈希值MySQL數據庫。我使用phpMyAdmin 3.3.9版本和MySQL客戶端版本4.1.22MySQL數據庫的哈希
我已經創建了一個數據庫名爲哈希值。我是mySQL的新手,我如何添加一個包含散列數據的表?
我目前正試圖創建一個擁有散列如MD5哈希值MySQL數據庫。我使用phpMyAdmin 3.3.9版本和MySQL客戶端版本4.1.22MySQL數據庫的哈希
我已經創建了一個數據庫名爲哈希值。我是mySQL的新手,我如何添加一個包含散列數據的表?
哈希列應爲CHAR(32)
,因爲這是哈希的長度:
CREATE TABLE `hashes` (
`id` INT NOT NULL AUTO_INCREMENT,
`hash` CHAR(32),
PRIMARY KEY (`id`)
);
mysql> describe hashes;
+-------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| hash | char(32) | YES | | NULL | |
+-------+----------+------+-----+---------+----------------+
如果你想從表中給出用戶輸入選擇:
-- Insert sample data:
mysql> INSERT INTO `hashes` VALUES (null, MD5('hello'));
Query OK, 1 row affected (0.00 sec)
-- Test retrieval:
mysql> SELECT * FROM `hashes` WHERE `hash` = MD5('hello');
+----+----------------------------------+
| id | hash |
+----+----------------------------------+
| 1 | 5d41402abc4b2a76b9719d911017c592 |
+----+----------------------------------+
1 row in set (0.00 sec)
您可以添加一個關鍵在hash
爲更好的表現。
散列可以被存儲爲文本二進制數據或(更方便)。默認情況下,PHP MD5函數輸出一個由32個字符組成的字符串,因此您需要一個包含32個字符的字段的表格。就這樣。 :)
看看這裏: http://dev.mysql.com/doc/refman/5.1/en/create-table.html
可以使用,當然phpMyAdmin的做到這一點,但它是更好地瞭解實際的SQL。
如果您打開數據庫(點擊它在左邊的列名),將有一個「創建數據庫DBNAME新表」一節。輸入你想要的表格名稱(例如散列),以及你想要的字段數量。
這是我們需要更多信息的地方:如果你只是想單獨存儲散列和散列,那麼你需要兩個字段:一個唯一的散列ID(整型,auto_increment設置爲true)和一個32字符文本字段。我有點不確定這是否有用,所以如果你發佈了更多的信息,我們可能能夠幫助你解決你想要改善的一些問題。
編輯: 在這種情況下,你需要三個字段:哈希ID(在表中的每個條目的唯一參考),散列,並明文與之相關。將哈希ID設置爲整數,並將auto_increment設置爲true。將散列的字段設置爲長度爲32的varchar,並將明文字段設置爲「文本」。
不,我希望用戶輸入的東西,那麼它散列,並檢查其對數據庫中的哈希值。 – AustinM 2011-02-03 19:41:39
MySQL 4.1.22?你是否搶過博物館或其他東西? – Mchl 2011-02-03 22:38:21