关于身份证图片加密安全技术

article/2025/9/15 7:52:01

前言

现在的图片都是上传到c d n或者其它第三方服务器上,通过一个url进行访问,非常的方便,方便的同时也带来了另外一个问题,隐私安全问题,比如:好莱坞隐私照片泄漏。

如何保证图片安全

如果发生客户隐私图片的泄漏,将是非常严重的事情,会使当事人遭受到骚扰、企业遭受到质疑,那么如何保证用户上传图片的安全将是一件值得重视的事情,本篇介绍一种加密方式:异或加密。

算法原理

异或的运算方法是一个二进制运算:
1^1=0
0^0=0
1^0=1
0^1=1

两者相等为0,不等为1。

对于一个字符来说,都可以用二进制码来表示。如A:01000001
字符的异或就是对每一位进行二进制运算。

用于加密算法时,假设你要加密的内容为A,密钥为B,则可以用异或加密:
C=A^B
在数据中保存C就行了。
用的时候:
A=B^C
即可取得原加密的内容,所以只要知道密钥,就可以完成加密和解密。

代码实现

文件上传工具类
import java.io.*;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;/*** Copyright (c) 2011-2021 <br>* Company: 公众号:超漫时光 <br>* Description:  <br>** @author cool_summer_moon <br>* @date 2021/3/16 9:30 上午<br>*/
public class FileUtil {private static int dataOfFile = 0; // 文件字节内容private static String key = "coolsummermoon&^%$$^Q**";private static int[] array; //存放每个hash值的数组public static void main(String[] args) {File srcFile = new File("/Users/coolsummermoon/Documents/C100.jpg"); // 初始文件File encFile = new File("/Users/coolsummermoon/Documents/C101.jpg"); // 加密文件File decFile = new File("/Users/coolsummermoon/Documents/C102.jpg"); // 解密文件array = string2ASCII(getMD5(key));try {EncFile(srcFile, encFile); //加密操作DecFile(encFile, decFile);} catch (Exception e) {e.printStackTrace();}}private static void EncFile(File srcFile, File encFile) throws Exception {if (!srcFile.exists()) {System.out.println("source file not exixt");return;}if (!encFile.exists()) {System.out.println("encrypt file created");encFile.createNewFile();}InputStream fis = new FileInputStream(srcFile);OutputStream fos = new FileOutputStream(encFile);int i = 0;while ((dataOfFile = fis.read()) > -1) {fos.write(dataOfFile ^ array[i++]);if (i == array.length - 1) {i = 0;}}System.out.println(i + "");fis.close();fos.flush();fos.close();}// 4176587private static void DecFile(File encFile, File decFile) throws Exception {if (!encFile.exists()) {System.out.println("encrypt file not exixt");return;}if (!decFile.exists()) {System.out.println("decrypt file created");decFile.createNewFile();}InputStream fis = new FileInputStream(encFile);OutputStream fos = new FileOutputStream(decFile);int i = 0;while ((dataOfFile = fis.read()) > -1) {fos.write(dataOfFile ^ array[i++]);if (i == array.length - 1) {i = 0;}}System.out.println(i + "");fis.close();fos.flush();fos.close();}//String2Asciipublic static int[] string2ASCII(String s) {// 字符串转换为ASCII码if (s == null || "".equals(s)) {return null;}char[] chars = s.toCharArray();int[] asciiArray = new int[chars.length];for (int i = 0; i < chars.length; i++) {asciiArray[i] = char2ASCII(chars[i]);}return asciiArray;}public static int char2ASCII(char c) {return (int) c;}public static String getMD5(String sInput) {String algorithm = "";if (sInput == null) {return "null";}try {algorithm = System.getProperty("MD5.algorithm", "MD5");} catch (SecurityException se) {}MessageDigest md = null;try {md = MessageDigest.getInstance(algorithm);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}byte buffer[] = sInput.getBytes();for (int count = 0; count < sInput.length(); count++) {md.update(buffer, 0, count);}byte bDigest[] = md.digest();BigInteger bi = new BigInteger(bDigest);return (bi.toString(16));}
}

结束语

异或的图片加密方式密钥越复杂、密钥的储存越安全,加密的图片就越安全。如果本篇内容对你有帮助,请点个赞,再加个关注。
来自夏夜凉月的博客截图
微信扫码,关注一位有故事的程序员。关注后(回复:1024),领取海量Java架构进阶资料。


http://chatgpt.dhexx.cn/article/Bmc8E6LK.shtml

相关文章

blob图片路径加密

目录 一、代码二、效果演示 一、代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>blob图片路径加…

Cocos图片加密与解密

如果cocos项目没有对资源进行加密处理,发布出来的APK一旦被人解包&#xff0c;则所有图片资源都会暴露出来,为了避免图片资源被人恶意使用&#xff0c;所以我准备给自己项目中使用到的图片进行简单加密&#xff0c;这样可以防住一部分解包伸手党。 我们这里采用最常见的异或加…

(在线)实时图片加密

目录 1 功能介绍 2 操作说明 2.1 图片加密 2.1 图片解密 1 功能介绍 图片加密http://eastsun.xyz/sudoku/html/encryptPic.html 该网站主要用于对图片进行在线实时加密,解密 用户可以自定义加密后生成的"文字图片"内容,同时这些文字图片也可以是图片解密的提示信…

python简单的图片加密

欢迎加入我们卧虎藏龙的python讨论qq群&#xff1a;729683466 ●导 语 ● 总有些东西是你不希望别人看到的 比如 你暗恋的女神的照片 要是被别人发现了 那可就尴尬了 所以 来学一学用python加密图片吧&#xff01; 代码及相关资源获取 1&#xff1a;关注“python趣味爱好者”公…

java 图片加密

首先&#xff0c;了解下异或操作 ^ &#xff0c;对一个数进行两次异或操作得到原数值。 public class IOTest {public static void main(String[] args) {int i 3;System.out.println(i^123);//120System.out.println(i^123^123);//3}} 将一张图片进行拷贝&#xff0c;对其进…

用JS实现:图片压缩、图片加密

本文将用JavaScript实现两个颇有技术含量的功能&#xff1a;图片压缩、图片加密。 最终效果&#xff1a;可实现将任意图片加密、压缩&#xff0c;并保存到一个独立的html页面中&#xff0c;输入正确的密码&#xff0c;才能看到原图。 第一步、压缩图片 技术原理 将图片读入c…

python图片水印加密的几种处理方式

常见的图片加密方法包括加密算法、水印、隐藏、压缩等。下面简要介绍一些常见的图片加密方法&#xff1a; 加密算法 加密算法是一种基于数学运算的加密方式&#xff0c;可对图片进行加密处理&#xff0c;使得未经过解密操作的情况下难以被直接读取或显示。常见的加密算法包括对…

去除水印-Teorex Inpaint 序列号

Teorex Inpaint 正版序列号 效果很好&#xff01; 如图所示 序列号在下面&#xff1b; 上面就是 正版的效果&#xff1b; 所以 大家好评 我心领了 记得关注&#xff01; 好福利一堆呢&#xff01; 回复“水印” 知识星球也要加入哦&#xff01; 加粗样式 加入的好朋友…

Inpaint 5.2安装说明

##一&#xff0e;软件简介&#xff1a; Inpaint 是一款可以从图片上去除不必要的物体&#xff0c;让您轻松摆脱照片上的水印、划痕、污渍、标志等瑕疵的实用型软件&#xff1b;简单说来&#xff0c;Inpaint 就是一款强大实用的图片去水印软件&#xff0c;您的图片中不想要的部分…

图片去水印工具:Inpaint 7.2中文专业破解版下载及使用方法

下载地址&#xff1a; 点我 Inpaint 是一款可以从图片上去除不必要的物体&#xff0c;让您轻松摆脱照片上的水印、划痕、污渍、标志等瑕疵的实用型软件&#xff1b;简单说来&#xff0c;Inpaint 就是一款强大实用的图片去水印软件&#xff0c;您的图片中不想要的部分&#xff0…

snipaste使用教程介绍

snipaste是一个简单但强大的截图工具&#xff0c;但是很多用户下载之后都不知道怎么用&#xff1f;今天小编带来的内容就是snipaste使用方法教程。 Win10纯净版_Win10 64位纯净版_Win10纯净精简版系统下载-系统部落 1、打开Snipaste首选&#xff0c;切换到常规&#xff0c;勾…

截图工具Snipaste

提示&#xff1a;今天介绍一个好用的截图工具 Snipaste介绍 软件名/版本&#xff1a; Snipaste-2.7.3-Beta-x64 Snipaste介绍&#xff1a;这里只谈一下我的使用感受吧&#xff0c;Snipaste有我们常用的截图样式&#xff0c;它有个好用的粘贴方式就是随意粘贴不影响你其它的操…

SQL SERVER Sequence Number 序列号

SequenceNumber是SQL Server2012推出的一个 新特性。这个特性允许数据库级别的序列号在多表或 多列之间共享。对于某些场景会非常有用&#xff0c;比如&#xff0c;你 需要在多个表之间公用一个流水号。以往的做法是额 外建立一个表&#xff0c;然后存储流水号。而新插入的流水…

Snipaste介绍、安装、使用技巧(截图贴图工具)

一、简介 Snipaste 是一个简单但强大的截图贴图工具&#xff0c;也可以让你将截图贴回到屏幕上&#xff01;下载并打开 Snipaste&#xff0c;按下 F1 来开始截图&#xff0c;再按 F3&#xff0c;截图就在桌面置顶显示了。就这么简单&#xff01; 你还可以将剪贴板里的文字…

iMindMap汉化免费下载序列号

iMindMap 是思维导图创始人托尼巴赞&#xff08;Tony Buzan&#xff09;开发的思维导图软件&#xff0c;线条自由&#xff0c;具有手绘功能。它结合独特的自由形态头脑风暴视图模式和系统的思维导图视图模式&#xff0c;特别适用于头脑风暴、策划和管理项目、创建演示文稿等。思…

【综合】简单加解密——寻找序列号

【综合】简单加解密——寻找序列号 下面文字对你可能有用(复制粘贴): #include <stdlib.h> #include <string.h> #include “malloc.h” #define MaxPass 66 // 最多66段密文 #define NumbPwdTable 5 // 密码表的份数 #define SizePwdTable 0x210 // 每份密码表占…

Inpaint破解版 - 图片去水印神器

Inpaint是一款强大实用的图片去水印软件&#xff0c;您的图片中不想要的部分&#xff0c;如额外的线&#xff0c;人物&#xff0c;文字等……选定后补绘都会帮你全自动进行擦除&#xff0c;同时补绘会根据附近图片区域重建擦除的区域&#xff0c;使看起来完美无暇&#xff0c;没…

截图软件 : Snipaste

说到截图软件&#xff0c;用过win10、win11的同学第一个想到的应当是PrtSc键或WinShiftS启动系统自带的截图软件&#xff0c;再“老”一点的可能会想到QQ截图。小编在之前也是怎么想的&#xff0c;因此看到其他小编写关于截图软件的文章就很不屑&#xff0c;认为这是多此一举。…

Source Insight 4.0 序列号 license文件

安装程序下载 在官网上下载Source Insight 4.0的安装程序. 版本4.00.0098可用 已经分享到网盘 链接: https://pan.baidu.com/s/1xyprwNSXLpj7kpDa7LaF_Q 提取码: v3cy 版本4.00.0124可用 https://pan.baidu.com/s/1paa_48tv1c0AHhBapqo2TA?pwdxnsx 提取码: xnsx 30天的…

CorelDRAW2021序列号 专业的矢量图像设计软件

CorelDRAW是一款专业的图像设计软件&#xff0c;提供一站式的图片修改功能&#xff0c;附带功能强劲的点阵图向矢量图转化的工具&#xff0c;使用方便简单&#xff0c;是设计师们的必不可少的软件。详见文章内容。 CDR2021新功能&#xff1a; 1、颠覆性协作工具 CorelDRAW …