将base64加密之后的图片文件流写为文件

PHP将远程图片加密成base64编码 PHP将远程图片加密成base64编码 解析:PHP代码实现将远程图片下载到本地,在载入图片进行base64编码。 例一:代码将图片保存为1.jpg,多次执行会覆盖此图片。 <?php $url="https://mgtk.suyuan1688.com/col/9/cs30.jpg"; $new_file = "./"."1.jpg"; //图片类型getimagesize($url)可... 阅读详情

流水账代码:

public class ImagetoImageUrlUtil {

	private static final Logger logger = Logger
			.getLogger(ImagetoImageUrlUtil.class);

	@Autowired
	private static int MAXSIZE = 1024 * 1024 * 4;

	public static String upLoadImage(String image,String uploadPath,String readPath) {
		FileOutputStream fos = null;
		BufferedOutputStream bos = null;
		String newFileName = new SimpleDateFormat("yyyyMMddHHmmssSSS")
				.format(new Date())
				+ "_"
				+ new Random().nextInt(10000)
				+"."
				+ image.split(",")[0].split("/")[1].split(";")[0];
		try {
			byte[] photoimg = new BASE64Decoder().decodeBuffer(image.split(",")[1]);
			for (int i = 0; i < photoimg.length; ++i) {
				if (photoimg[i] < 0) {
					// 调整异常数据
					photoimg[i] += 256;
				}
			}
			System.out.println("图片的大小:" + photoimg.length);
			logger.info("uploadPath :" + uploadPath);
			logger.info("readPath :" + readPath);
			if (photoimg.length < MAXSIZE) {
				fos = new FileOutputStream(new File(uploadPath + newFileName));
				bos = new BufferedOutputStream(fos);
				bos.write(photoimg);
			} else {
				throw new Exception("图片大小不能超过4M");
			}
		} catch (Exception e) {
			logger.info("Exception" + e.getMessage());
			e.printStackTrace();
		} finally {
			if (bos != null) {
				try {
					bos.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
			if (fos != null) {
				try {
					fos.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
		}
		String pictureUrl = readPath + newFileName;
		return pictureUrl;
	}
	public static void main(String[] args) {
		
		ImagetoImageUrlUtil.upLoadImage("data:image/png;base64,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AAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAD0KZ22AAAPcUlEQVQAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAABAhhEAAgAAAAAAABlGAAgAAAAAAABkGAEgAAAAAAAAkGEEgAAAAAAAAECGEQACAAAAAAAAGUYACAAAAAAAAGQYASAAAAAAAACQYQSAAAAAAAAAQIYRAAIAAAAAAAAZRgAIAAAAAAAAZBgBIAAAAAAAAJBhBIAAAAAAAAApu3XrVqrrAZLUaiV7vRAAAgAAAAAApOzq1Td18+bN1NYDJKn21lXdvBX/9UIACAAAAAAAttStWzf185//87CrMTDvvWdrYmKXdu7cGWu9mzeb+vWvrcj7uXmzqWvX1rS2dnXYhzwU7777G733nj3samyZ9963tXPnTu3csTP2thPDrjwAAAAAANg+3n33N1pbu6oPPnh/2FUZmLffrqlcvjvWeuvrN7S2dkVSTh/+cDF022vX1tRq3dIvf3lNH/5wadiHvKVu3rypa9dqeuutX6hS+Re6/fb8sKu0JX75ztv66N6PJ9qWFoAAAAAAAGDL3HHHh7R378dib7e+/utU1xuU996ztWPHDk1M7Iq13uTkbn3kIx+NvJ+77prSRz/68W0X/knSzp07NTV191gHf3Ffp3v2lLRjx05NTCRry0cACAAAAAAARtqtW7f0y1++ndp6g3Tt2po++tFyauvBXy6XG3YVEknyOj18+F/qI3uiB8RedAEGAAAAAAAj64MPPtAvfvHPoXfLjbreIL3//nuSpF27bktlPWRPktfpnXd+WK1WS7tCWpUGIQAEAAAAAABDYdsNra39XK3WLb3//vvau/dj+shH7uost6xf6v3339etWy29956tt9+uSZImJnZpz569sda7ceNX+vnP/1m5XE53313R9etryuVy+uCDD7Rnz16VSnt76tdsfqD/+T9f1x13TKpS2R96PGm1/nvvPVvXr7+lmzdv6r33bO3ZszdW92C3999/T2+99Qvt2nWbcjnpvffe08c+9vGe7rPOebv99ryazQ9069ZNTUzs0vXrb+uee+7V5OSHY+331q2bWlv7uXbs2KEdO3bIthv6yEc+qg99aHdP/X75y7e1c+eEbt5sql6/rvfff1//y//yae3Ysdlx9YMP3tfPf/4z5XLSjh07e+rfaLyrq1ff1K1bN3XPPfv11lu/6JT/kY98VKXSR2LVP255t27dVK12Vbdu3VIul1Oz2dTU1G8pny901gl6nQb51//6X+n/+X/+W6Lfv4MAEAAAAAAAbLkPPnhfb79d0759Fe3cuVMffPC+Vlf/u+68s9gJRIrFdshy/fpbklq+oVmU9XbvvlMf//hv62c/+4l+/WtLv/M790pq31Din/7pdeVyuU45jlu3bqnZbEa6YckHH7yvW7du6bbbbu9rvWbzA12//pY+/vHf3giSPtAbb7ym2267Xbt33xnrHDebH+gnP3lDn/jE73UCs/fff08/+ckbuvfeA9q1a1fnOH/60/+pe++d7rRK/MUvfqZWq6Xf+Z17u0KsKFqtln784zd0110f6wSrjcZvdPnyqn7/92e67o78z//8Y33iE/d15n3sYx/X5cur+uCD9zt1vnnzpi5fvqR9+yqdc9BovKu1tZ93yikU7tDHPvZx/exnP9G1azXdffc92rFjh5rND7S6+t/14Q/fqZ07o8dgccprtVr6yU/+p/bu/VgnGGw03tWPf3xJv/d793fOadTXs9vu3bu1c+dOWdavYv0OvBgDEAAAAAAAbLkdO3Z2wj+p3R12167bZNv2wPfrvkPvzp07tXfvx/TWW7WedW+77XZ98pMHtX//gdBy3367FinQCVvv/fff09TU3Z3x7SYmdqlY3JNobMNa7ao+/OFiV2u52267XR/+cEm12pXOvN/85oZ27tzZ1SV59+479atf1bV794dDW6h5/fKXb6vVutXVqjKX26Fdu3bp1q2bnXmtVkuNxrtdY/nt2LFTd999T1d516+/pYmJXV0BaKFwh26/vTdE3bFjp37rt+7ptB6cmNi18bpqxD5/UcuzrF/q1q1bXa0CC4U7dMcd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","D:\\","hello");
	

			
		
	  


	}
}


Java图片Base64加密与解密技术详解 类被设计为支持基本的Base64编码和解码操作,同时也支持带填充和不带填充的Base64 URL安全编码。这种设计使得开发者可以很容易地在不同的应用场景中选择合适的编码方式。从使用优势来看,类对比sun.misc包中的实现,主要在以下几个方面进行了改进:线程安全类中的操作是线程安全的,可以被多个线程安全地调用。灵活性:它提供了不同的编码器和解码器来满足不同场景下的需求。可扩展性:通过提供编码器和解码器的接口,允许开发者实现自己的编码规则,为特定需求提供支持。 阅读详情

相关推荐

从无人机到机械臂:深入聊聊LQR和LQG在实际项目里的那些‘坑’与最佳实践

本文深入探讨了LQR和LQG在无人机和机械臂等实际项目中的应用挑战与最佳实践。从系统建模的妥协艺术到调参的系统化方法,再到离散化的细节处理,文章分享了工程实践中的宝贵经验。特别强调了如何应对传感器噪声、未建模动态等现实问题,并提供了实用的调试工具和诊断流程,帮助工程师避免常见陷阱,提升控制系统的稳定性和性能。

weixin_28683391的博客 383

ext 6.0开发实例二

由于Ext JS 6将原来的Ext JS和Sencha Touch合并为一个框架,因而在使用CMD来创建应用程序前,需要考虑清楚你是要创建一个通用应用程序,还是仅仅只是针对桌面或移动设备的应用程序。 要做这样的考量,是因为通用应用程序和比较单一的应用程序在开发上会有些小麻烦。这些小麻烦主要是因为Ext JS的自动加载机制造成的,有时候会很困扰人。 Ext JS的自动加载机制是根据类名来

qq_29913175的博客 5万+

PSOC Creator 入门教程超详细

最近工作原因需要使用到赛普拉斯的一款芯片,奈何以前没有用过,所以趁这次也学习了一些简单的用法,总结一下,希望能帮到有需要朋友,因为网上关于这方面的文章少的可怜,详细点的更是少之又少!废话少说,正文开始.

qm_mq的博客 5744

base64图片解码生成图片,上传到指定服务器

问题 前端传来的base64截图,需要转换成图片,存储到fastdfs服务器 转换失败,生成的图片是空白的 解决 原因是生成的base64被拼接了一个头部,这个不是图片的一部分,转换时,是需要去掉的 一般步骤是获取字节流或字符流,然后可以生成文件或上传到指定文件服务 代码如下: public String uploadBase64(String name,String base64) { //生成jpeg图片 System.out.println(" ======

闫玉林的博客 2069

ANSYS 2026 R1 Windows系统安装避坑指南:环境配置、模块部署与许可证实战

ANSYS作为主流CAE仿真平台,其安装部署已远超传统软件范畴,演变为涉及操作系统底层、GPU驱动兼容性、许可证微服务架构和统一缓存机制的系统工程。理解ANSYS安装原理,需从Windows 11 UEFI安全启动要求、DirectX 12 Ultimate图形栈依赖、gRPC架构的License Manager端口动态分配等核心机制切入;技术价值在于保障HFSS GPU加速、Fluent MPI并行稳定性及Workbench多模块协同可靠性;典型应用场景涵盖高校仿真实验室升级、工业设计院所平台重建及高性能

weixin_29251337的博客 1388

SPWM波调制度原理

SPWM波调制度原理

qq_43557686的博客 1万+

Javamail在解析附件是抛出Missing start boundary异常

在做javamail通过pop3解析邮件的时候,在解析邮件包含附件的时候,在测试服务器上出现了以下异常   Missing start boundary   javax.mail.MessagingException: Missing start boundary at javax.mail.internet.MimeMultipart.parse(MimeMultipart.java...

Ben.Sin 2871

MT6768平台Sensor Bring Up全流程实战:从驱动添加到问题排查(附避坑指南)

本文详细介绍了联发科MT6768平台Sensor Bring Up的全流程实战指南,从驱动添加、硬件配置到问题排查,提供了全面的避坑建议。内容涵盖环境准备、驱动文件集成、硬件接口配置、编译系统适配以及常见问题解决方案,帮助开发者高效完成传感器集成与调试工作。

weixin_30374009的博客 416

Hibernate4.3.8Final环境搭建

1.在eclipse上新建java project 2.下载hibernate最新包4.3.8.Final.zip,解压文件 3.导入lib目录下required中的包 4.导入mysql的连接包 5.编写hibernate配置文件:hibernate.cfg.xml到src目录下 <!DOCTYPE hibernate-configuration PU

jiejiewish的专栏 13万+

【SAP HANA 46】关于HANA CPU高峰到 80-100%

关于HANA CPU高峰到 80-100%

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 427

【Burp入门第三十七篇】AutoRepeater插件安装使用教程+越权实战案例

AutoRepeater 通过接收满足特定条件的请求,按照预设的基础替换规则对请求进行处理。在接收到匹配请求后,它首先应用基础替换,然后针对每个定义的替换创建请求副本并应用该替换操作,从而实现对不同参数的修改和请求的重复发送,以此来全面检测 Web 应用的授权情况。1、自动化请求重复:能自动复制、修改并重发 HTTP 请求,避免了手动重复操作的繁琐,大大提高了 Web 应用授权测试的效率。2、灵活参数替换:可灵活改变邮箱地址、账号身份、角色、URL 和 CSRF 令牌等关键参数。

等风来 2033

二维码生成器

#include "stdio.h" #include "stdlib.h" //#include "windows.h"//system("mode con:cols=82 lines=43");要用这个加上 //wxp://f2f0yG-RsMvpyie_IO4W 这是我的微信收款码的数据,用这个生成的二维码可以收款,当然你自己的也可以做 typedef unsigned char u8; //常量 #define Version 6 #define ECLevel 2 //纠错等级为M

m0_64150070的博客 1万+

Hermes Agent 对阵 OpenClaw:自我改进的 AI 队友

但在 2026 年 2 月,Nous Research 发布了 Hermes Agent,它带来了不同的愿景:一个不仅能够运行,还能学习的代理。在完成复杂的多步骤任务后,它会分析自己的操作并创建一个可复用的技能。对于已在使用 OpenClaw 的澳大利亚企业而言,这意味着您可以试用 Hermes Agent,而无需丢失数月的配置和自定义成果。最重要的区别在于理念:OpenClaw 是一个需要配置的工具,而 Hermes Agent 则是一个会学习的队友。OpenClaw 的技能是静态的。

xiaoshun007的专栏 1571

把图片转换成Base64形式存储

类来进行Base64编码,它是在Java 8中引入的官方 API,提供了更稳定和可靠的Base64编码功能。最好的做法是事先知道流的大小,或者使用其他方法来准确获取流的大小,比如记录文件大小或者使用其他方式来确定流的结束标记。方法的返回值取决于操作系统和文件系统的不同,可能会导致错误的结果。更为可靠的方式是根据实际读取到的数据大小来确定字节数组的大小。方法来确定流的大小,因为它并不总是返回精确的流大小。方法会返回缓冲区中的字节数,而不是整个流的大小。方法的行为有不同的解释,导致返回值的不确定性。

sun0322 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java实现图片文件转Base64编码加密解密

代码如下,有基本注释,直接复制过去,可能需要导包 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;     //图片文件转Base64编码 pub...

LeBronRaymoneJames的博客 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java对文件路径进行Base64加密,防止盗链下载、右击图片完整例子。

业务场景是:对页面图片或者文件的src加密,即打开F12不可获取到图片地址。 具体实现:后台获取文件的真实地址,对地址进行Base64加密,页面采用指定格式回显即可。 Base64加密工具类 import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Decoder; import java.io.*; public class Base64ToImg { public static String get

用心创造梦想 3032

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

图片文件,图片文件流和BASE64加密字符串之间的转换,以及图片的BASE64加密字符串再jsp上如何显示

*本事例主要讲了如下几点:  * 1:将图片转换为BASE64加密字符串.  * 2:将图片流转换为BASE64加密字符串.  * 3:将BASE64加密字符串转换为图片.  * 4:在jsp文件中以引用的方式和BASE64加密字符串方式展示图片. 首先看工具类: package com.ilucky.util.image; import java.awt.image.Buffere

sidongxue2的专栏 1万+

java中Base64图片加密解密保存

/** * base64字符串转图片 * @param imgStr 图片的base64 * @param path 将要生成的地址 * @return */ public static String generateImage(String imgStr, String path) { //如果图像数据为空 if (imgStr == null) { return null...

曾小怪的博客 3460

C++ Base64转图片&&图片转Base64

Base64的由来 目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输。那么,Base64到底起到什么作用呢? 在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会出现乱码情况。与此类似,网络上传输的字符并不全是可打印的字...

my_angle2016的博客 1万+

vue base64 文件、图片解密

Base64是一种二进制到文本的编码方式。如果要更具体一点的话,可以认为它是一种将 byte数组编码为字符串的方法,而且编码出的字符串只包含ASCII基础字符。例如字符串ShuSheng007对应的Base64为U2h1U2hlbmcwMDc=。其中那个=比较特殊,是填充符,一会再说。值得注意的是Base64不是加密算法,其仅仅是一种编码方式,算法也是公开的,所以不能依赖它进行加密。js// 加密// 解密文件: "data:text/plain;base64,"

一只小孙鼠的博客 2702

改变base64加密图片的大小

1、添加依赖 <!-- 图片缩略图 --> <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>...

yy1209357299的博客 5421

利用python对大量html文件的图片内容进行base64加密

最近利用python处理了两千多个html文件,对每一个html中的img标签中的图片进行了base64加密,感觉python还是很强大的,其中自有的base64库真的是非常方便,简单的一行就能实现base64的加密和解密,简洁而高效。

止水 1796

详述图片base64加密的原理,告诉你什么是“/9j/“

    欢迎大家搜索“小猴子的技术笔记”关注我的公众号,有问题可以及时和我交流。     在日常的生活中,我们肯定都经历过类似这样的场景:报名考试上传图片,网站要求的是上传的照片不能大于多少,而且要求是“.jpg”的格式。     于是你高高兴兴的把自己最漂亮的照片上传上去了,但是网站却提示你照片格式不正确,让你重新上传。这个时候内心不知道有多少疑惑涌上心头(其实是草泥马在奔腾)我的照片明明就是“.jpg”结尾的,而且大小也符合规范,为啥就不行呢?     我们通常的会认为(Windows电脑情况下,Ma

MonkeyBrothers的博客 9370

jmeter(图片进行base64加密发送)

操作系统:Windows jmeter版本:5.1.1 说明:这个项目需要对图片进行base64加密发送请求 1、自己使用eclipse编写一个base64的加密代码(可以找开发或百度),导出为 jar 包,本人只是加密图片,代码如下: package com.mytest.functions; import java.io.FileInputStream; import ja...

weixin_30455023的博客 1566

将图片文件读入字符串并进行base64加密

import java.io.*;import sun.misc.*;public class ReadBase64Pic{ private String base64str=null; private String picname="d:/1.gif";//图片源 FileInputStream file; private ReadBase64Pic() { // System.out.prin

fogu77的专栏 1289
上一篇: Spring mvc 中使用 kaptcha 验证码
下一篇: 深入理解HTTP Session
R先森
博客等级 码龄12年 193粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值