用于哈希的MySQL数据库

时间:2011-02-03 19:37:07

标签: mysql database hash phpmyadmin

我目前正在尝试创建一个包含MD5哈希值等哈希值的mySQL数据库。我正在使用PHPmyAdmin版本3.3.9和MySQL客户端版本:4.1.22

我已经创建了一个名为hashes的数据库。我是mySQL的新手,所以如何添加一个包含哈希数据的表?

4 个答案:

答案 0 :(得分:1)

哈希列应该是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上添加密钥以获得更好的效果。

答案 1 :(得分:0)

哈希可以存储为二进制数据,或者(更方便)存储为文本。默认情况下,PHP MD5函数输出一个32个字符的字符串,因此您需要一个包含字符的表,该字段可以包含32个字符的字符串。就这样。 :)

答案 2 :(得分:0)

看看这里: http://dev.mysql.com/doc/refman/5.1/en/create-table.html

当然可以使用phpMyAdmin来实现,但最好还是了解实际的SQL。

答案 3 :(得分:0)

如果您打开数据库(在左侧列中单击它的名称),则会出现“在数据库dbname上创建新表”部分。输入所需表格的名称(例如哈希)以及所需的字段数。

这是我们需要更多信息的地方:如果您只想存储哈希值和哈希值,那么您将需要两个字段:唯一的哈希ID(类型为integer,auto_increment设置为true)和32个字符文本域。我对这个实用程序有点不确定,所以如果你发布更多信息,我们可能会帮助你解决你想要达到的目标更好的问题?

修改 在这种情况下,您将需要三个字段:哈希标识(表中每个条目的唯一引用),哈希以及与之关联的明文。将哈希id设置为整数,auto_increment设置为true。将哈希的字段设置为长度为32的varchar,将明文字段设置为“text”。