首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP将图片加密写入数据库并解密读取

PHP将图片加密写入数据库并解密读取

原创
作者头像
岳泽以
发布于 2024-05-28 10:34:28
发布于 2024-05-28 10:34:28
46800
代码可运行
举报
文章被收录于专栏:岳泽以博客岳泽以博客
运行总次数:0
代码可运行

加密写入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 生成随机 IV
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));
// 加密图片数据
$encrypted_image1_data = base64_encode(openssl_encrypt(file_get_contents($image1), 'AES-256-CBC', $web_site_key, 0, $iv));
$encrypted_image2_data = base64_encode(openssl_encrypt(file_get_contents($image2), 'AES-256-CBC', $web_site_key, 0, $iv));

// 准备 SQL 语句
$stmt = $conn->prepare("INSERT INTO encrypted_images (image1_data, image2_data, phone_number, iv,uid) VALUES (?, ?, ?, ?,?)");

// 绑定参数并执行 SQL 语句
$stmt->bindParam(1, $encrypted_image1_data);
$stmt->bindParam(2, $encrypted_image2_data);
$stmt->bindParam(3, $phone_number);
$iv_base64 = base64_encode($iv);
$stmt->bindParam(4, $iv_base64);
$stmt->bindParam(5, $uid);

try {
  if ($stmt->execute()) {
    $array = array(
      "code" => 200,
      "msg" => "提交成功"
    );
    $apidata = json_encode($array);
    echo $apidata;
  } else {
    throw new Exception("插入失败");
  }
} catch (Exception $e) {
  $array = array(
    "code" => 400,
    "msg" => $e->getMessage()
  );
  $apidata = json_encode($array);
  echo $apidata;
} finally {
  exit;
}

解密读取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 获取需要解密的记录
  $stmt = $conn->prepare("SELECT phone_number, image1_data, image2_data, iv FROM encrypted_images WHERE id = :id");
  $stmt->bindParam(':id', $id);
  $stmt->execute();

  $row = $stmt->fetch(PDO::FETCH_ASSOC);

  // 解密图像数据
  $iv = base64_decode($row['iv']);
  $decrypted_image1_data = openssl_decrypt(base64_decode($row['image1_data']), 'AES-256-CBC', $web_site_key, 0, $iv);
  $decrypted_image2_data = openssl_decrypt(base64_decode($row['image2_data']), 'AES-256-CBC', $web_site_key, 0, $iv);

  // 可以将解密后的图像数据保存为文件或显示在页面上
  // file_put_contents('decrypted_image1.jpg', $decrypted_image1_data);
  // file_put_contents('decrypted_image2.jpg', $decrypted_image2_data);
  // 或者以base64的格式返回
  $array = array(
    "code" => 200,
    "phone" => $row['phone_number'],
    "img1" => base64_encode($decrypted_image1_data),
    "img2" => base64_encode($decrypted_image1_data)
  );
  $apidata = json_encode($array);
  echo $apidata;
  exit;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP7.1实现的AES与RSA加密操作示例
本文实例讲述了PHP7.1实现的AES与RSA加密操作。分享给大家供大家参考,具体如下:
PHP开发工程师
2021/06/03
1.5K0
PHP AES加解密:用代码为数据加上保护的盾牌
在网络世界里,数据的传输和存储是一个敏感而重要的问题。为了保护数据的安全性,加密算法是一项不可或缺的技术。而在PHP中,AES(Advanced Encryption Standard)加解密算法是一种常用的选择。本篇博客将深入解析PHP中的AES加解密,让我们一起为数据加上一层坚固的保护盾牌。
繁依Fanyi
2024/01/28
5730
微信消息加解密Mcrypt在php7.2中废弃与open_ssl替代解决方案
之前在接入微信公众号相关的接口,对微信消息加解密操作时,下载了官网上的php demo下来。
benny
2019/05/24
2K0
PHP 迁移 Mcrypt 至 OpenSSL 加密算法详解
对称加解密算法中,当前最为安全的是 AES 加密算法(以前应该是是 DES 加密算法),PHP 提供了两个可以用于 AES 加密算法的函数簇:Mcrypt 和 OpenSSL。
猿哥
2019/03/13
1.9K0
PHP加密解密方法及常见问题解决方案(php对称加密和非对称加密示例)
php是一种流行的服务器端编程语言,广泛用于web应用程序开发中。在实际应用中,php加密解密是非常常见的操作。本文将介绍php中常见的加密解密方法,以及常见问题的解决方案。
超级小可爱
2024/02/24
1.1K0
用 PHP或Python加密字符串,用iOS解密
可以使用对称加密算法(如 AES)来加密和解密字符串。对称加密适合这种跨平台加密解密的需求,因为可以使用相同的密钥和算法在不同的编程语言和系统之间进行加密和解密。
华科云商小徐
2024/11/12
2680
php api接口加密的两种方式
方法一:请求头加密参数 /** * api_sk = 接口密钥 (在面板设置页面 - API 接口中获取) * request_time = 当前请求时间的 uinx 时间戳 ( php: time() / python: time.time() ) * seqID 随机数用来避免同一秒多个请求 * 示例: $request_token = md5($request_time . ‘’ . md5($api_sk)) */ public fu
用户8099761
2023/05/11
1.2K0
php api接口加密的两种方式
Laravel中encrypt和decrypt的实现方法
前言 Laravel 的加密机制使用 OpenSSL 提供 AES-256 和 AES-128 的加密,本文将详细介绍关于Laravel中encrypt和decrypt的实现,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
用户2323866
2021/07/08
2.8K0
PHP7以上 不支持mcrypt_module_open方法问题(微信视频号接口对接)
Fatal error: Uncaught Error: Call to undefined function mcrypt_module_open()
用户7657330
2023/10/19
4600
PHP AES加密
示例 <?php /** * User: orzblankcat * Date: 2019/1/25 * Time: 17:30 */ class AesClass { #电子密码本
超级小可爱
2023/05/18
1.9K0
RSA加密传输代码示例
涉及敏感数据的传输,双方最好约定使用加密解密。那RSA非对称加密就大有作为了。 服务端可以保留自己的私钥,发给客户端对应的公钥。这样就可以互相加解密了。php中rsa加解密实现:
Tinywan
2019/07/16
1.5K0
PHP官方现代化核心加密库 Sodium
Sodium crypto library是一个现代化的,易于使用的软件库,用于加密,解密,签名,密码散列等。
Tinywan
2024/08/19
4120
PHP官方现代化核心加密库 Sodium
PHP 使用非对称加密算法(RSA)
  以前一直对客户端传给服务器的信息加密这一块一脸懵,如果app里面的用户登录信息被抓包拿到了,大写着 username:root,password:123456,  那不是很尴尬。
Lansonli
2021/10/09
2K0
php案例:文件的加密解密
贵哥的编程之路
2023/12/18
4890
php案例:文件的加密解密
AES-128-CBC-Pkcs7Padding加密PHP实例
(例如17350886066加密后+eupvMFtSc0E7veMi+XCgQ==)
OwenZhang
2022/06/27
1.8K0
AES-128-CBC-Pkcs7Padding加密PHP实例
PHP OpenSSL扩展 – 对称加密
PHP 在进入7.x 时代后,默认就不再附带 mcrypt 扩展,mcrypt 将被 openssl_* 一族函数所替代。所以,对于 PHPer 来说,有必要学习一下 PHP 的 OpenSSL 扩展。
全栈程序员站长
2022/07/11
2.2K0
基础入门-算法逆向&散列对称非对称&JS源码逆向&AES&DES&RSA&SHA
密文-有源码直接看源码分析算法(后端必须要有源码才能彻底知道) 密文-没有源码1、猜识别 2、看前端JS(加密逻辑是不是在前端) #算法加密-概念&分类&类型
没事就要多学习
2024/07/18
2230
基础入门-算法逆向&散列对称非对称&JS源码逆向&AES&DES&RSA&SHA
PHP分享几种常用的加密方式
应用场景分别为:用户的唯一标识(文章加密id防止爬虫)、生成有规律的code、登录密码的加密
猿哥
2019/08/01
1K0
PHP分享几种常用的加密方式
php DES加密算法实例分析
public static function encrypt($data,$key){
用户8832582
2021/07/13
1K0
crypto加密:后端PHP加密,前端JS解密
但有时build上传到服务器,浏览器加载不了cdn地址,可以另存为上传到自家服务器上。
conanma
2022/03/12
11.2K0
推荐阅读
相关推荐
PHP7.1实现的AES与RSA加密操作示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档