我在研究互联网上的AES加密时发现了以下代码。 在这段代码中,我发现key和iv是使用hash function生成的,并使用sha256 。 我想知道这种方法对于使用PHP加密文本是否安全。

我在网上找到的代码如下,<?php

function encrypt_decrypt($action, $string) {

$output = false;

$encrypt_method = "AES-256-CBC";

$secret_key = 'This is my secret key';

$secret_iv = 'This is my secret iv';

// hash

$key = hash('sha256', $secret_key);

// iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning

$iv = substr(hash('sha256', $secret_iv), 0, 16);

if ( $action == 'encrypt' ) {

$output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);

$output = base64_encode($output);

} else if( $action == 'decrypt' ) {

$output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);

}

return $output;

}

$plain_txt = "This is my plain text";

echo "Plain Text =" .$plain_txt. "\n";

$encrypted_txt = encrypt_decrypt('encrypt', $plain_txt);

echo "Encrypted Text = " .$encrypted_txt. "\n";

$decrypted_txt = encrypt_decrypt('decrypt', $encrypted_txt);

echo "Decrypted Text =" .$decrypted_txt. "\n";

if ( $plain_txt === $decrypted_txt ) echo "SUCCESS";

else echo "FAILED";

echo "\n";

?>

php生成aes密钥,为AES加密生成密钥的安全性相关推荐

  1. https 密钥 php,https加密方式是什么

    Https加密 介绍 Http直接通过明文在浏览器和服务器之间传递消息,容易被监听抓取到通信内容. Https采用对称加密和非对称加密结合的方式来进行通信. Https不是应用层的新协议,而是Http ...

  2. MSSQL · 最佳实践 · 使用混合密钥实现列加密

    摘要 在SQL Server安全系列专题的上两期月报分享中,我们分别分享了:如何使用对称密钥实现SQL Server列加密技术和使用非对称密钥加密方式实现SQL Server列加密.本期月报我们分享使 ...

  3. 自动生成AES密钥,并使用生成的进行加密解密1

    /** * 自动生成AES128位密钥 */ public static void getA221(){ try { KeyGenerator kg = KeyGenerator.getInstanc ...

  4. 128位java_求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救!...

    求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救! 关注:157  答案:1  mip版 解决时间 2021-02-03 09:1 ...

  5. 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...

    转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 July 20, 20 ...

  6. aes sample java,python-AES加密java解密

    我有超过1000个图像和视频需要加密.没什么比这更简单的了,我想用AES,但我搞不懂如何在我的电脑上加密,然后在设备上解密.在 我会用python加密我电脑上的所有项目.然后以随需应变的方式用java ...

  7. vivado中bit文件怎么没有生成_Xilinx FPGA bit 文件加密

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  8. AES算法在Wi-Fi加密中的应用

    一. Wi-Fi加密技术的发展史 Wi-Fi是一种创建于IEEE802.11标准的无线局域网技术,Wi-Fi部署区网可让客户端设备无需使用电线,降低网络部署和扩充的成本.随着技术的逐渐成熟,Wi-Fi ...

  9. 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别

    目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...

  10. 十七.SpringCloud+Security+Oauth2实现微服务授权 -非对称加密生成JWT令牌

    仅做学习使用,老鸟飞过,欢迎交流 前言 在之前的微服务授权方案<SpringCloud+Security+Oauth2实现微服务授权 - 授权服务配置>中我们使用的是Oauth+JWT方式 ...

最新文章

  1. RecycleView 嵌套 RecycleView 导致自动滚动
  2. Stanford UFLDL教程 从自我学习到深层网络
  3. C#与C++ DLL的交互
  4. 微信小程序 蓝牙的使用
  5. php返回101,PHP 101:变量与函数
  6. 【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦
  7. a标签的四个伪类是什么?如何排序?为什么?
  8. wxWindows文档
  9. android gradle下载
  10. org.jboss.deployers.spi.DeploymentException: Error deploying: file:/jboss/logging.xml或者vsf.xml
  11. 4米乘以12米CAD图_【超干货】CAD铺装排版下料之路径阵列
  12. 报错error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio“
  13. 墨画子卿第二章第4节:三招
  14. unity3d如何有效地组织代码?
  15. mysql错误:Can’t create TCP/IP socket (10106) 解决方法
  16. 我怎么就沦落到听新裤子的地步了呢?
  17. 01-运营可能是一种思维方式
  18. 昂达b450s 内存超频3200,xmp设置教程
  19. Java虚拟机:Java虚拟机结构
  20. 宁波计算机高考总分,盘点宁波的重高成绩单,惊人的升学数据让你想不到!

热门文章

  1. python解压版怎么安装_python 解压版 zip file 安装
  2. 电脑软件如何抓包?如何模拟弱网和超时环境?
  3. CSS实现的阴影的3D立体文字动画网页源码
  4. java基础(六)线程
  5. zabbix监控,添加客户端,邮件报警
  6. 物联网专题32:百度云物联网 ESP8266
  7. 你真的了解Redis单线程为什么如此之快吗?
  8. u盘与计算机绑定技术,办公小技巧:设置电脑绑定识别唯一U盘,保护系统安全...
  9. redis知识点总结与分布式锁的实现
  10. python练习——探索 Chipotle 快餐数据