我目前正在尝试创建一个包含MD5哈希值等哈希值的mySQL数据库。我正在使用PHPmyAdmin版本3.3.9和MySQL客户端版本:4.1.22
我已经创建了一个名为hashes的数据库。我是mySQL的新手,所以如何添加一个包含哈希数据的表?
答案 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”。