php生成aes密钥,为AES加密生成密钥的安全性
我在研究互联网上的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加密生成密钥的安全性相关推荐
- https 密钥 php,https加密方式是什么
Https加密 介绍 Http直接通过明文在浏览器和服务器之间传递消息,容易被监听抓取到通信内容. Https采用对称加密和非对称加密结合的方式来进行通信. Https不是应用层的新协议,而是Http ...
- MSSQL · 最佳实践 · 使用混合密钥实现列加密
摘要 在SQL Server安全系列专题的上两期月报分享中,我们分别分享了:如何使用对称密钥实现SQL Server列加密技术和使用非对称密钥加密方式实现SQL Server列加密.本期月报我们分享使 ...
- 自动生成AES密钥,并使用生成的进行加密解密1
/** * 自动生成AES128位密钥 */ public static void getA221(){ try { KeyGenerator kg = KeyGenerator.getInstanc ...
- 128位java_求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救!...
求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救! 关注:157 答案:1 mip版 解决时间 2021-02-03 09:1 ...
- 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...
转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 July 20, 20 ...
- aes sample java,python-AES加密java解密
我有超过1000个图像和视频需要加密.没什么比这更简单的了,我想用AES,但我搞不懂如何在我的电脑上加密,然后在设备上解密.在 我会用python加密我电脑上的所有项目.然后以随需应变的方式用java ...
- vivado中bit文件怎么没有生成_Xilinx FPGA bit 文件加密
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...
- AES算法在Wi-Fi加密中的应用
一. Wi-Fi加密技术的发展史 Wi-Fi是一种创建于IEEE802.11标准的无线局域网技术,Wi-Fi部署区网可让客户端设备无需使用电线,降低网络部署和扩充的成本.随着技术的逐渐成熟,Wi-Fi ...
- 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别
目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...
- 十七.SpringCloud+Security+Oauth2实现微服务授权 -非对称加密生成JWT令牌
仅做学习使用,老鸟飞过,欢迎交流 前言 在之前的微服务授权方案<SpringCloud+Security+Oauth2实现微服务授权 - 授权服务配置>中我们使用的是Oauth+JWT方式 ...
最新文章
- RecycleView 嵌套 RecycleView 导致自动滚动
- Stanford UFLDL教程 从自我学习到深层网络
- C#与C++ DLL的交互
- 微信小程序 蓝牙的使用
- php返回101,PHP 101:变量与函数
- 【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦
- a标签的四个伪类是什么?如何排序?为什么?
- wxWindows文档
- android gradle下载
- org.jboss.deployers.spi.DeploymentException: Error deploying: file:/jboss/logging.xml或者vsf.xml
- 4米乘以12米CAD图_【超干货】CAD铺装排版下料之路径阵列
- 报错error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio“
- 墨画子卿第二章第4节:三招
- unity3d如何有效地组织代码?
- mysql错误:Can’t create TCP/IP socket (10106) 解决方法
- 我怎么就沦落到听新裤子的地步了呢?
- 01-运营可能是一种思维方式
- 昂达b450s 内存超频3200,xmp设置教程
- Java虚拟机:Java虚拟机结构
- 宁波计算机高考总分,盘点宁波的重高成绩单,惊人的升学数据让你想不到!