当前位置: 首页 > news >正文

购物网站开发报告深圳官方宣布解封时间

购物网站开发报告,深圳官方宣布解封时间,临汾万词霸屏网站建设免费咨询,自己做的网站显示不安全怎么回事前言 下面介绍在PHP代码中#xff0c;如何对数据进行 AES-256-GCM 加密和解密。我们可以使用 openssl 和 sodium 扩展来实现加密#xff0c;它们都支持 AES-256-GCM 算法#xff0c;下面将给出两种扩展的代码示例。 注#xff1a;在对称加密算法中#xff0c;除了应用广泛…前言 下面介绍在PHP代码中如何对数据进行 AES-256-GCM 加密和解密。我们可以使用 openssl 和 sodium 扩展来实现加密它们都支持 AES-256-GCM 算法下面将给出两种扩展的代码示例。 注在对称加密算法中除了应用广泛的 AES 以外还有一种名为 ChaCha20-Poly1305 的新式加密算法它的性能比 AES 更好如果CPU支持AES指令硬件加速则AES性能更好安全性也不输AES。sodium 扩展支持 ChaCha20-Poly1305。 环境 PHP 7.3 一、使用openssl扩展 ?phpfunction aes256gcm_encrypt(string $data, string $keygen, string $aad ): array {$cipher aes-256-gcm;$ivLen openssl_cipher_iv_length($cipher);$iv random_bytes($ivLen); // 12字节的iv$encrypt openssl_encrypt($data, $cipher, $keygen, OPENSSL_RAW_DATA, $iv,$tag, $aad);return [iv base64_encode($iv),tag base64_encode($tag),aad base64_encode($aad),cipher_text base64_encode($encrypt),]; }function aes256gcm_decrypt(array $secretData, string $keygen) {$iv base64_decode($secretData[iv]);$tag base64_decode($secretData[tag]);$aad base64_decode($secretData[aad]);$cipherText base64_decode($secretData[cipher_text]);$cipher aes-256-gcm;return openssl_decrypt($cipherText, $cipher, $keygen, OPENSSL_RAW_DATA, $iv, $tag, $aad); }function main() {// AES-256-GCM需要32字节的密钥$keygen bin2hex(random_bytes(16));// 加密$data Hello World!;$secretData aes256gcm_encrypt($data, $keygen, foobar);// 解密$plainText aes256gcm_decrypt($secretData, $keygen);echo 原文$data\n;echo 密文数据 . json_encode($secretData) . \n;echo 解密后$plainText\n; }main();二、使用 sodium 扩展 ?phpfunction aes256gcm_encrypt(string $data, string $keygen, string $aad ): array {$iv random_bytes(SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES);$encrypt sodium_crypto_aead_aes256gcm_encrypt($data, $aad, $iv, $keygen); // 包含密文、tagreturn [iv sodium_bin2base64($iv, SODIUM_BASE64_VARIANT_ORIGINAL),aad sodium_bin2base64($aad, SODIUM_BASE64_VARIANT_ORIGINAL),cipher_text sodium_bin2base64($encrypt, SODIUM_BASE64_VARIANT_ORIGINAL),]; }function aes256gcm_decrypt(array $secretData, string $keygen) {$iv sodium_base642bin($secretData[iv], SODIUM_BASE64_VARIANT_ORIGINAL);$aad sodium_base642bin($secretData[aad], SODIUM_BASE64_VARIANT_ORIGINAL);$cipherText sodium_base642bin($secretData[cipher_text], SODIUM_BASE64_VARIANT_ORIGINAL);return sodium_crypto_aead_aes256gcm_decrypt($cipherText, $aad, $iv, $keygen); }function main() {if (!sodium_crypto_aead_aes256gcm_is_available()) {exit(Not support AES-256-GCM);}// 生成AES-256-GCM的密钥$keygen sodium_crypto_aead_aes256gcm_keygen();// 加密$data Hello World!;$secretData aes256gcm_encrypt($data, $keygen, foobar);// 解密$plainText aes256gcm_decrypt($secretData, $keygen);echo 原文$data\n;echo 密文数据 . json_encode($secretData) . \n;echo 解密后$plainText\n; }main();AAD参数Additional Authenticated Data 在上面的代码示例中可以看到在加密的时候有一个$aad参数如果在加密的时候使用了这个参数那么在解密时也需要使用同样的AAD值才能成功解密。 什么时候会需要用到AAD呢下面举个例子 用户Alice在CSDN博客上写了一篇私密文章CSDN使用 AES-256-GCM 加密了这篇文章然后存储到了数据库里AAD的取值是Alice的用户ID。 后续如果Alice去查看这篇文章CSDN会使用Alice的用户IDAAD值去解密因为解密的AAD值与加密的AAD值相同所以可以成功解密。 然后有一个黑客Bob他也向CSDN发出解密这篇文章的请求CSDN就会使用Bob的用户ID作为AAD去解密这篇文章但因为AAD值错误肯定是解密不了的所以这时候AAD的作用就体现了出来。 参阅 https://cloud.google.com/kms/docs/additional-authenticated-data?hlzh-cn
http://www.pierceye.com/news/550964/

相关文章:

  • 网站设计 素材代账行业门户网站开发
  • 旅游公司网站开发与实现如何建立公司网站
  • 专门做金融培训的网站有哪些wordpress注册没反应
  • 网站备案部门建设厅焊工证什么样子
  • 南宁市建设工程质量监督站网站设计模式
  • 做理财的网站科技公司网站模板官网
  • 在线网站建设课程济宁网站建设 企诺
  • 北京专业网站制作技术手机网站建好怎么发布
  • 谷歌网站建站wordpress 页面和文章
  • 网站建设基本目标如何建设 linux 网站
  • 电子商务网站开发 php汕头 网站建设
  • 郑州做网站的论坛山西利用模板建站
  • 网站引流.定期报告系统下载官网
  • 北京网站排名珠海 网页设计
  • 长春火车站防疫政策wordpress调用图片代码
  • 建设论坛网站自学江苏中小企业网站建设
  • 东莞网站建设效果好网站建设制作设计
  • 成华区建设局门户网站wordpress.fr
  • 河北制作网站模板建站公司网站开发流程的认识
  • 天津网站建设有哪些做网站的公司为什么人少了
  • 提供中山精品网站建设建俄语网站哪个公司最好
  • 建设银联官方网站怎样在网站做宣传
  • 网站开发支付宝二维码支付建设网站装配式建筑楼房
  • 湖北系统建站怎么用做网站买一个域名就够了吗
  • 如何做问卷调查网站济南网络公司
  • 纯js做网站Wordpress税
  • 建云科技网站首页阿里云 wordpress 安装
  • 浙江省建设工程协会网站动漫网站的设计与实现
  • wordpress能导出网站吗企业内部网站开发
  • 景观石网站建设方案一 网站开发背景