binary = Base64.getEncoder().encodeToString(bytes).trim(); 提示找不到包解决方法

sun.*的包换成 

import org.apache.commons.codec.binary.Base64;

可以解决

 

BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(outputStream.toByteArray()).replaceAll("\n","");

 

也是一样

 

或者看看idea的jdk版本是不是在jdk11或者jdk11以上

import cn.zhangsan.tools.enums.Algorithm;import com.google.common.collect.Maps;import org.bouncycastle.jce.provider.BouncyCastleProvider;import org.bouncycastle.util.encoders.Hex;import java.net.MalformedURLException;import java.net.URL;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.Security;import java.util.Base64;import java.util.Map;/** * @ClassName HashGeneratorUtils * @Description TODO * @Author ZhangSan_Plus * @Date 2024/7/29 20:04 * @Version 1.0 **/public class HashGeneratorUtils { static Map<Object, String> map = Maps.newLinkedHashMap(); static { Security.addProvider(new BouncyCastleProvider()); } public static void main(String[] args) { String input = "张三"; try { Map<Object, String> hashText = getHashText(input, 4); hashText.forEach((k, v) -> System.out.println(k + ":" + v)); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } public static String extractDomain(String urlString) { try { URL url = new URL(urlString); return url.getHost(); } catch (MalformedURLException e) { e.printStackTrace(); return null; } } private static Map<Object, String> getHashText(String text, int digest) throws NoSuchAlgorithmException { map.put(Algorithm.MD5, encryption(md5(text), digest)); map.put(Algorithm.SHA1, encryption(sha1(text), digest)); map.put(Algorithm.SHA256, encryption(sha224(text), digest)); map.put(Algorithm.SHA224, encryption(sha256(text), digest)); map.put(Algorithm.SHA512, encryption(sha384(text), digest)); map.put(Algorithm.SHA384, encryption(sha512(text), digest)); map.put(Algorithm.SHA3, encryption(sha3_256(text), digest)); map.put(Algorithm.RIPEMD160, encryption(ripemd160(text), digest)); return map; } private static byte[] md5(String input) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("MD5"); return digest.digest(input.getBytes()); } private static byte[] sha1(String input) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("SHA-1"); return digest.digest(input.getBytes()); } private static byte[] sha224(String input) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("SHA-224"); return digest.digest(input.getBytes()); } private static byte[] sha256(String input) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("SHA-256"); return digest.digest(input.getBytes()); } private static byte[] sha384(String input) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("SHA-384"); return digest.digest(input.getBytes()); } private static byte[] sha512(String input) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("SHA-512"); return digest.digest(input.getBytes()); } private static byte[] sha3_256(String input) throws NoSuchAlgorithmException { MessageDigest digest = null; try { digest = MessageDigest.getInstance("SHA3-256", "BC"); } catch (NoSuchProviderException e) { throw new RuntimeException(e); } return digest.digest(input.getBytes()); } private static byte[] ripemd160(String input) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("RIPEMD160"); return digest.digest(input.getBytes()); } private static String toHexString(byte[] bytes) { return Hex.toHexString(bytes); } private static String toBase64(byte[] bytes) { return Base64.getEncoder().encodeToString(bytes); } private static String toBase64Url(byte[] bytes) { return Base64.getUrlEncoder().withoutPadding().encodeToString(bytes); } private static String toBinary(byte[] bytes) { StringBuilder binaryString = new StringBuilder(); for (byte b : bytes) { for (int i = 7; i >= 0; i--) { binaryString.append(((b >> i) & 1) == 1 ? '1' : '0'); } binaryString.append(""); } return binaryString.toString().trim(); } private static String encryption(byte[] bytes, int encoding) { switch (encoding) { case 1: return toHexString(bytes); case 2: return toBinary(bytes); case 3: return toBase64(bytes); case 4: return toBase64Url(bytes); default: return ""; } }}
03-31
spring写一个读取.Rtf中图片的接口:在提供的RTF文件文本数据中,图片是通过嵌入的二进制数据来存储的。具体来说,图片部分如下所示: ```plaintext {\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}} {\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex1456\picscaley208\piccropl0\piccropr0\piccropt0\piccropb0 \picw1718\pich7620\picwgoal974\pichgoal4320\wmetafile8\bliptag879047577\blipupi246{\*\blipuid 34653399a74c84bc4e20c5a41d9b0fed}0100090000037c5b01001700cc0700000000050000000b0200000000050000000c025094b8e7030000001e00050000000b0200000000050000000c0283337150 ... ``` 这段代码使用了RTF的图像嵌入语法,其中关键的部分括: 1. **`{\pict ...}`**:表示一个图片对象的开始和结束。 2. **`{\*\picprop ...}`**:定义了图片的一些属性,如形状类型(shapeType)、是否水平或垂直翻转(fFlipH, fFlipV)等。 3. **`\picw`, `\pich`, `\picwgoal`, `\pichgoal`**:分别指定了图片的实际宽度和高度以及目标宽度和高度(以 twips 为单位)。 4. **`\wmetafile8`**:表明这是一个Windows Metafile格式的图像(WMF),并且其后跟随的是二进制数据。 5. **`{\*\blipuid ...}`** 和后续的十六进制字符串:这些是实际的二进制图像数据,经过Base64或其他编码方式嵌入到RTF文件中。 因此,这张图片是以Windows Metafile (WMF) 格式嵌入,并且具体的图像内容作为二进制数据直接嵌入到了RTF文件里。 若要提取或查看该图片,需要将这部分二进制数据解码并保存为相应的图像文件格式。
03-29
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值