网站首页 > 文章中心 > 其它

php如何加密数据

作者:小编 更新时间:2023-08-12 20:29:08 浏览量:260人看过

PHP如何对用户密码进行加密

PHP如何对用户密码进行加密

第二种方法:可以使用MYSQL的 PASSWORD函数进行用户密码的加密.例如:Insert into user(password, ........) values (PASSWORD("$password",.........));

可以在一个PHP文件里面include另外一个PHP文件两次吗

php如何加密数据-图1

是的,可以在一个PHP文件里面include另外一个PHP文件两次,被include的那个php文件也会执行两次,所以如果在这个文件里面定义的有一个class, 就会报出the class already defined的错误.

mysql的最长数据库名,表名,字段名可以是多长

mysql_pconnect()和mysql_connect()有什么区别

两者的区别主要有两个:

① 在进行数据库连接时,函数会先找同一个host, 用户和密码的persistent(持续的)的'链接,如果能找到,则使用这个链接而不返回一个新的链接.

;

PHP对称加密-AES

对称加解密算法中,当前最为安全的是 AES 加密算法(以前应该是是 DES 加密算法),PHP 提供了两个可以用于 AES 加密算法的函数簇: Mcrypt 和 OpenSSL .

在一些场景下,我们不能保证两套通信系统都使用了相函数簇去实现加密算法,可能 siteA 使用了最新的 OpenSSL 来实现了 AES 加密,但作为第三方服务的 siteB 可能仍在使用 Mcrypt 算法,这就要求我们必须清楚 Mcrypt 同 OpenSSL 之间的差异,以便保证数据加解密的一致性.

协同好以上两点,就可以让 Mcrypt 和 OpenSSL 之间一致性的对数据进行加解密.

php如何加密数据-图2

AES 是当前最为常用的安全对称加密算法,关于对称加密这里就不在阐述了.

AES 有三种算法,主要是对数据块的大小存在区别:

Mcrypt 的默认填充算法.NUL 即为 Ascii 表的编号为 0 的元素,即空元素,转移字符是 "\0",PHP 的 pack 打包函数在 'a' 模式下就是以 NUL 字符对内容进行填充的,当然,使用 "\0" 手动拼接也是可以的.

默认使用 NUL("\0") 自动对待加密数据进行填充以对齐加密算法数据块长度.

获取 mcrypt 支持的算法,这里我们只关注 AES 算法.

options 参数即为重要,它是兼容 mcrpty 算法的关键:

故可以得出 mcrpty簇 与 openssl簇 的兼容条件如下:

建议将源码复制到本地运行,根据运行结果更好理解.

①二者使用的何种填充算法.

各位用php将密码存入数据库,都用什么方法进行加密的

php

$str="admin";?//需要加密的字符串

输出:

第四种

$encrypt=$row['encrypt'];?//?生成的?随机加密字符串?存到数据库中

用php将密码存入数据库,用什么方法进行加密?

PHP常用加密解密方法

$flag = true ?返回原始流数据

true ?返回原始流数据

$algo : 算法名称,可通过hash_algos()函数获取所有hash加密的算法

而不同.

true ?返回原始流数据.

具体算法依赖于PHP检查之后支持的算法和$salt的格式和长度,当 然具体结果也和操作系统有关.比较结果采用 hash_equals($crypted,crypt($input,$salt));//且salt值相同

Password_verify($str,$crypted);

函数返回哈希加密后的密码字符串, password_hash() 是crypt()的 一个简单封装

$algo : 算法 PASSWORD_DEFAULT ,PASSWORD_BCRYPT

$options = [

"cost"=10,//指明算法递归的层数,

"salt"="xxadasdsad"//加密盐值,即将被遗 弃,采用系统自动随机生成安全性更高

];

使用的算法、cost 和盐值作为哈希的一部分返回

Password_verify($str,$hashed);

可以进行解码;

php如何加密数据-图3

string $mode [, string $iv ] )

mcrypt_decrypt ( string $cipher , string $key , string $crypted ,

$ciper:加密算法,mcrypt_list_algorithms()可以获取该函数所有支持的算法

$mode : 加密模式 ,mcrypt_list_modes()获取所有支持的加密模式,ecb,cbc

$key: 加密的秘钥,mcrypt_get_key_size ( string $cipher , string $mode )

获取指定的算法和模式所需的密钥长度.$key要满足这个长度,如果长 度无效会报出警告.

$iv : 加密的初始向量,可通过mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] ),

Iv的参数size:

通过mcrypt_get_iv_size ( string $cipher , string $mode )获取

Iv 的参数source:

Note: 需要注意的是,如果没有更多可用的用来产生随机数据的信息, 那么 MCRYPT_DEV_RANDOM 可能进入阻塞状态.

$data : 要加密的字符串数据

如何对PHP文件进行加密

Zend Guard是目前市面上最成熟的PHP源码加密产品.

经过本人搜集资料,亲身测试后,总结了如何利用Zend Guard对PHP文件进行加密,以及如何利用Zend Loader对加密后的PHP文件进行解密.

Zend Guard的安装及破解

破解需要注意以下几点:

如何使用Zend Guard进行加密?

弹出如下的对话框:

本步骤是选择要加密的文件,可以是单个文件[Add File]或整个文件夹[Add Folder],然后[Next].

(此处,我选择的是对整个文件夹进行加密.即 D:\wamp\www\demo 里的所有文件进行加密.)

如此,就实现了对PHP源码的最简单的加密.

我们可以在产品的输出目录(D:\productDir)里,看到加密后的文件.

可以看出,产品输出目录里的PHP文件已被加密了.

这种最简单的加密方式,我们并没有设置加密的有效期,也没有设置许可证支持(即解密时,是否需要许可证文件),默认是永不过期,不需要解密许可文件.

Zend Loader 解密

上面我们已经对PHP代码进行了最简单的加密(编码),加密后生成的PHP源代码,就不能再被web服务器上的PHP模块解析了.

当我们将加密后的php文件放到web服务器上执行时,会显示如下信息:

Zend Guard Run-time support missing!

One more more files on this web site were encoded by ZendGuard and the required run-time support is not installed orproperly configured.

......

原来,加密后的php代码需要ZendGuardLoader模块才能正常运行.

[Zend.loader],

zend_loader.enable=1

zend_loader.disable_licensing=1

zend_loader.license_path=

注:

zend_loader.enable 表示是否启用zend loader,1表示启用,0表示禁用

zend_loader.disable_licensing 表示是否禁用许可证,1表示禁用,0表示不禁用 (由于上面我加密php文件的时候,没有设置许可证支持,故解密时,禁用许可证)

zend_loader.obfuscation_level_support 表示代码混淆级别

zend_loader.license_path 指定许可证文件的路径

zend_extension 指定zend loader 扩展文件 的路径

配置完成后,重启wampserver,如果您的php的版本是NTS(非线程安全的话),就可以正常执行加密后的PHP文件了.

如何查看安装好的PHP的版本及PHP是否已经成功支持Zend Loader?

通过查看 phpinfo() 函数的输出信息,利用 Ctrl + F 快速查找关键字Thread Safety 和 Zend Guard Loader.

可以看到,Thread Safety 对应的值为disabled,就说明该php的版本是 NTS (非线程安全)的,否则就是TS版本的.

再往下面看,还可以查看 Zend Guard Loader 的配置信息,如下:

到此,整个 Zend Guard 加密和 Zend Guard Loader 解密,就介绍完毕了.

温馨提示: 为了顺利实现PHP代码的zend加密和解密,建议使用PHP官网上主流的PHP的NTS版和Zend官网上对应的Zend Guard加密软件、 Zend Guard Loader解密插件.

相关附件:

Zend

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章