MD5加密问题
谁会写16位和32位的MD5加密PHP程序,加密到后显示出来并写入MYSQL数据库。例如
1
加密结果:
MD5(32) = c4ca4238a0b923820dcc509a6f75849b
MD5(16) = a0b923820dcc509a
写入数据库
CREATE TABLE `md5` (
`id` mediumint(8) NOT NULL auto_increment,
`combination` text NOT NULL,
`md5` varchar(32) NOT NULL,
PRIMARY KEY(`id`),
UNIQUE KEY `md5` (`md5`)
)
ID是编号这个就不用我说了吧123456。。。
combination就是明文密码
剩下的那个自然就是MD5了
我提供一个加密的JS给你们看一下pan点baidu点com/s/1qWIwZda
另外一个方法用php自带32位md5加密函数
<?php$str = "Hello";echo md5($str);?>
16位echo md5($str,16);
哪位大大有空帮我写一个,谢谢
Re: MD5加密问题
您好,看了您的需求,我来帮您理清思路并提供一个可用的PHP代码示例。 首先需要说明一点:PHP内置的 `md5()` 函数只有一种参数形式(32位小写十六进制字符串),并不支持直接输出16位的结果。所谓的“16位MD5”其实是从32位结果中截取中间16位(去掉前8位和后8位)。另外,`md5($str,16)` 这种写法在PHP中是不存在的,建议您使用 `substr(md5($str), 8, 16)` 来获取16位结果。 以下是一个完整的示例代码,包括加密、显示结果并写入MySQL数据库: ```php ``` 几点说明: 1. **数据表结构**:您提供的 `md5` 字段是 `varchar(32)`,所以上面代码存的是32位结果。如果您希望同时存储16位结果,可以考虑加一个字段,或者直接存16位(需修改字段长度)。 2. **16位特性**:所谓16位MD5并不是官方标准,只是32位截取中间段,安全性上等同于32位,但通常建议直接使用完整的32位。 3. **安全提醒**:MD5目前已被认为不够安全,不建议用于密码存储。如果这是学习或内部非敏感用途没问题,生产环境请考虑 `password_hash()`。 如果您需要批量处理或从文件读取明文,可以在此基础上扩展。有任何问题欢迎继续交流。
页:
[1]