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

php加密解密数字_数字加密解密过程

作者:小编 更新时间:2023-10-07 13:05:46 浏览量:21人看过

本文目录一览:

①.、PHP常用加密解密方法

③.、php 加密解密

④.、PHP 加密:AES & RSA

PHP常用加密解密方法

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

②sha1($string,$flag = false)

true ?返回原始流数据

③hash(string $algo,srting $str,bool $flag);

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

而不同.

true ?返回原始流数据.

④crypt(string $str,$string $salt);

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

Password_verify($str,$crypted);

⑤password_hash ( string $str, integer $algo [, array $options ] )

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

$algo : 算法 PASSWORD_DEFAULT ,PASSWORD_BCRYPT

$options = [

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

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

];

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

Password_verify($str,$hashed);

可以进行解码;

⑦mcrypt_encrypt ( string $cipher , string $key , string $data ,

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:

请注意,在 PHP ⑤⑥0 之前的版本中, 此参数的默认值 为 MCRYPT_DEV_RANDOM.

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

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

php加密解密数字_数字加密解密过程

php SHA256WithRSA签名验签&加密解密

使用:

$pri_key ="";

$pub_key = "";

$char = '方方块儿';//要加密的字符

$sign = $this-RsaEncrypt($char,$pri_key);//加密结果

$result = $this-RsaDecrypt($sign,$pub_key);//对加密结果进行解密

加密:

public function RsaEncrypt($str,$pri_key){

$pi_key =openssl_pkey_get_private($pri_key);

if(!$pi_key)return false;//秘钥不可用

openssl_private_encrypt($str,$encrypted,$pi_key);

return $encrypted;

}

解密:

public function RsaDecrypt($str,$pub_key){

$pu_key =openssl_pkey_get_public($pub_key);

if(!$pu_key)return false;//秘钥不可用

return $decrypted;

注:开启PHP的php_openssl扩展

php 加密解密

如果这前后四位数 都是估计的四位,那么就可以实现用一个方法

把这个字符串穿进去,

然后截取,前面的四位和后面的四位,

然后加密好了,再重新拼接好返回即可.

PHP 加密:AES & RSA

最近两年一直从事与金融相关项目的开发与维护.但是,关于 PHP 加密解密的最佳实践,网上没有人给出一个完美的总结.恰逢最近看了<<图解密码技术>>一书,对 PHP 加解密有了更深刻的认识.

为了避免各位看枯燥的文字理论,开篇我就把总结给出:

第一段:对称加密

对称加密的特点是加解密速度快,加密后的密文强度目前还没有硬解的可能性.但是,在未来随着计算机性能的提升有可能会出现被破解的可能性.

对称加密的缺点也很明显.对称加密的加密过程与解密过程使用的是同一把密钥.一旦泄漏密钥,加密就失去了任何意义.

根据<<图解密码技术>>一书的推荐,对称加密目前推荐使用 AES.在 PHP 当中要实现 AES 加解密,是使用 openssl 扩展来实现.所以,请确保你的 PHP 已经开启了 openssl 扩展.

可以通过如下方式检测:

或者如下方式检测:

AES 的加密模式属于分组密码模式.所谓分组密码,是加密时把明文按照固定的长度分组,然后再进行加密.当然,细节之处很很多不同.AES 分组模式有多种:ECB、CBC、CFB、OFB、CTR 五种分组模式.目前优先推荐使用 CBC 模式.

如果使用 CBC 模式,那么在加密的时候,就需要一个前置的加密向量 IV.当初博主在使用 AES 来加密的时候,就很奇怪一个对称加密为何要这个向量.因为,在博主寒冰的潜意识里,对称加密只需要一个密钥就 Ok 了.没想到 AES 加密还有多种模式,而这个 CBC 模式恰恰就需要一个这样的向量值.关于这个向量大家可以在网上查阅相关的资料.这个东西非常重要,也非常好理解.

关于 PHP AES 加解密会用到的相关方法:

第二段:非对称加密

非对称加密是指公钥加密私钥解密,私钥加密公钥解密的算法.非对称加密的算法有很多.<<图解密码技术>>一书推荐使用 RSA 算法.它使用起来也非常简单.

要使用 RSA 算法.首先,我们必须生成一对公钥私钥.其实生成公钥私钥很简单.

在 Linux 系统,直接使用如下命令生成:

此命令会生 ~/.ssh/ 目录下生成两个文件:

id_rsa 是私钥, is_rsa.pub 是公钥.

关于 PHP RSA 加解密会用到的相关方法:

以上就是土嘎嘎小编为大家整理的php加密解密数字相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

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

编辑推荐

热门文章