PHP大道至简之加密算法 灰太狼 2023-06-27 15:59 23阅读 0赞 ### 目录大纲 ### * passwod * * password\_hash * password\_verify * 代码示例 * openssl * * openssl\_cipher\_iv\_length * openssl\_random\_pseudo\_bytes * openssl\_encrypt * openssl\_decrypt * 代码示例 * hash * * sha512 * * 代码示例 * hash\_hmac * * 代码示例 * md5 * sha1 * * 代码示例 * base64 * * base64\_encode * base64\_decode * 代码示例 * 公钥、私钥 * * openssl\_pkey\_new * openssl\_pkey\_export * openssl\_pkey\_get\_details * openssl\_private\_decrypt * openssl\_private\_encrypt * openssl\_public\_decrypt * openssl\_public\_encrypt * 示例代码 * 生成证书 * * openssl\_csr\_new * openssl\_pkey\_export\_to\_file * openssl\_csr\_export\_to\_file * 示例代码 # passwod # ## password\_hash ## $output = password_hash('密码','加密算法','加密选项'); ## password\_verify ## password_verify('密码','加密信息') ## 代码示例 ## # 加密 $output = password_hash('123456',PASSWORD_ARGON2I,['memory_cost'=>65536,'time_cost'=>4,'threads'=>2]); # 密码校验是否一致 var_dump(password_verify($pwd,$output)); # openssl # ## openssl\_cipher\_iv\_length ## # 取密码iv长度 openssl_cipher_iv_length('加密算法'); ## openssl\_random\_pseudo\_bytes ## # 生成一个伪随机字节串 $iv = openssl_random_pseudo_bytes('长度'); ## openssl\_encrypt ## # 加密 $output = openssl_encrypt('密码','加密算法','加密key',OPENSSL_ZERO_PADDING,$iv,$tag); ## openssl\_decrypt ## echo openssl_decrypt('加密信息','加密算法','加密key',OPENSSL_ZERO_PADDING,$iv,$tag) ## 代码示例 ## # 要加秘的明文信息 $pwd = 123456; # 加密算法 $cipher = "aes-128-gcm"; # 取密码iv长度 $ivlen = openssl_cipher_iv_length($cipher); # 生成一个伪随机字节串 $iv = openssl_random_pseudo_bytes($ivlen); # 加密 $output = openssl_encrypt($pwd,$cipher,'key',OPENSSL_ZERO_PADDING,$iv,$tag); # 解密 echo openssl_decrypt($output,$cipher,'key',OPENSSL_ZERO_PADDING,$iv,$tag) # hash # ## sha512 ## ### 代码示例 ### **sha512** hash('sha512',$input,false); ## hash\_hmac ## hash_hmac('加密算法','明文信息','签名') ### 代码示例 ### # 加密 echo hash_hmac('sha512',123456,'secret') # md5 # > 注意:不推荐md5 加密 不安全 md5($input); # sha1 # > 注意:不推荐sha1加密 不安全 ## 代码示例 ## sha1($input); # base64 # ## base64\_encode ## # 加密 base64_encode('明文信息') ## base64\_decode ## # 解密 base64_decode('密文信息') ## 代码示例 ## # 加密 echo $output = base64_encode(123456); # 解密 echo base64_decode($output) # 公钥、私钥 # ## openssl\_pkey\_new ## # 加密算法 $configargs = array( "digest_alg" => "sha512", "private_key_bits" => 4096, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); # 生成密钥对 openssl_pkey_new($configargs); ## openssl\_pkey\_export ## # 得到私钥 openssl_pkey_export('密钥对','私钥'); ## openssl\_pkey\_get\_details ## # 得到密钥信息 $info = openssl_pkey_get_details('密钥对'); # 打印公钥 echo $info['key']; ## openssl\_private\_decrypt ## > 公钥加密,私钥解密。 # 解密 openssl_private_decrypt('密文','接收明文','私钥'); ## openssl\_private\_encrypt ## > 私钥加密,公钥解密 # 加密 openssl_private_encrypt('明文','接收密文','私钥'); ## openssl\_public\_decrypt ## > 私钥加密,公钥解密 # 解密 openssl_public_decrypt('密文','接收明文','公钥'); ## openssl\_public\_encrypt ## > 公钥加密,私钥解密。 # 加密 openssl_public_encrypt('明文','接收密文','公钥'); ## 示例代码 ## # 加密算法 $configargs = array( "digest_alg" => "sha512", "private_key_bits" => 4096, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); # 生成密钥对 $res = openssl_pkey_new($configargs); # 得到私钥 openssl_pkey_export($res,$prikey); # 得到密钥信息 $info = openssl_pkey_get_details($res); # 打印私钥 echo $prikey; # 打印公钥 echo $info['key']; # 公钥加密 openssl_public_encrypt('nickname:ming',$miwen,$info['key']); #base64 加密 echo base64_encode($miwen); #base64 解密 $miwen = base64_decode($miwen); #私钥解密 openssl_private_decrypt($miwen,$jiemi,$prikey); echo $jiemi; # 生成证书 # ## openssl\_csr\_new ## # 生成csr $csr = openssl_csr_new('域名参数', '私钥', ['摘要算法或签名哈希算法'] ); ## openssl\_pkey\_export\_to\_file ## # 保存密钥文件 openssl_pkey_export_to_file('私钥', '文件名.key'); ## openssl\_csr\_export\_to\_file ## # 保存csr openssl_csr_export_to_file('csr资源', '文件名.pem'); ## 示例代码 ## # 域名 $subject = array( "commonName" => "example.com", ); # 生成密钥对 $private_key = openssl_pkey_new(array( "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, )); # 生成证书 $csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384') ); # 导出密钥 openssl_pkey_export_to_file($private_key, 'example-priv.key'); #CSR导出到文件 openssl_csr_export_to_file($csr, 'example-csr.pem');
相关 PHP大道至简之加密算法 目录大纲 passwod password\_hash password\_verify 代码示例 openssl 灰太狼/ 2023年06月27日 15:59/ 0 赞/ 24 阅读
相关 PHP大道至简之农历换算 目录大纲 下载农历换算类 执行农历换算 下载农历换算类 > [github地址][github] 执行农历换算 require_onc 客官°小女子只卖身不卖艺/ 2023年06月26日 10:45/ 0 赞/ 30 阅读
相关 PHP大道至简之十二生肖 目录大纲 代码如下: 代码如下: / @name 12生肖-加钱版 @param int number 出生年份 @param array t 野性酷女/ 2023年06月24日 14:23/ 0 赞/ 29 阅读
相关 PHP大道至简之PECL 目录大纲 安装 linux windows MAC 安装 linux 1.Cetnos安装 yum安 川长思鸟来/ 2023年06月23日 17:52/ 0 赞/ 25 阅读
相关 php大道至简之xdebug Xdebug教程 Xdebug配置 下载Xdebug xdebug配置 vscode配置 Xdebug配置 下载X 比眉伴天荒/ 2023年06月19日 05:28/ 0 赞/ 23 阅读
相关 PHP大道至简之LNMP服务 LNMP服务搭建 PHP服务 MYSQL服务 重置mysql服务器密码 nginx服务 创建vhosts环境 配置 爱被打了一巴掌/ 2023年06月04日 14:53/ 0 赞/ 24 阅读
相关 PHP大道至简之递归算法 递归所有文件和目录 案例代码 案例代码 1.遍历目录及文件 function Infinite(string $path){ 墨蓝/ 2023年05月29日 05:03/ 0 赞/ 23 阅读
相关 PHP大道至简之OPcache OPcache配置 安装 Linux 配置 php.ini hugePage 配置OS, 分配一些Hugepages ph 矫情吗;*/ 2023年02月25日 02:23/ 0 赞/ 21 阅读
还没有评论,来说两句吧...