base64加密与URL
开发WEB的时候,比较常用的单向加密方式是MD5,比较常用的双向加密方法是BASE64。
以前我常用的BASE64加密方法是JDK1.5自带的,写成StringUtil如下:
加密
public static String base64Encode(String str) {
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
return encoder.encodeBuffer(str.getBytes()).trim();
}
public static String base64Decode(String str) {
sun.misc.BASE64Decoder dec = new sun.misc.BASE64Decoder();
try {
return new String(dec.decodeBuffer(str));
} catch (IOException io) {
throw new RuntimeException(io.getMessage(), io.getCause());
}
}
这个方式不错,但是有时加密出的字符串在URL传递的时候会有问题,会被URL当做是特殊的自负而转掉,就算用
UrlEncode也不是很爽。
后来发现了一个新的改进版本的BASE64方法:
public static String base64Encode(String str) {
byte[] bytes = UrlBase64.encode(str.getBytes());
return new String(bytes);
}
public static String base64Decode(String str) {
byte[] bytes = UrlBase64.decode(str.getBytes());
return new String(bytes);
}
这里用到的包org.bouncycastle.util.encoders.UrlBase64是来自于bcprov-jdk15-136.jar
这里也贴个下载地址吧:)
http://mirrors.ibiblio.org/pub/mirrors/maven/bouncycastle/jars/bcprov-jdk15-136.jar
这种方式就能解决BASE64在URL传递中遇到的问题啦:)
分享到:
相关推荐
然而,由于这个简单的实现没有处理Base64编码的规则,如尾部的填充字符"=",以及编码字符集中可能出现的URL安全版本替换,因此可能无法正确处理所有Base64字符串。 四、使用自定义函数 要使用这些自定义函数,你...
- `Base64.getUrlEncoder()`和`Base64.getUrlDecoder()`用于URL安全的Base64编码,其中将"+"替换为"-", "/"替换为"_". - `Base64.getMimeEncoder()`和`Base64.getMimeDecoder()`用于MIME(多用途互联网邮件扩展)...
2. **Base32**:与Base64类似,Base32也是一种用于将二进制数据转换为ASCII字符串的方法。但它使用了32个字符(包括大小写字母和数字)来表示数据,每个字符代表5位二进制数,所以每40位二进制数据可以编码为8个Base...
在实际应用中,Base64编码通常与加密算法结合使用,提高数据的安全性。例如,可以先使用AES等对称加密算法对敏感信息进行加密,然后将加密后的结果进行Base64编码,以方便在网络上传输。解密时,先对Base64编码的...
### 在Vue项目中使用Base64加密 #### 知识点概述 Base64是一种将二进制数据转换为文本字符串格式的标准编码方法。在Web开发中,尤其是在使用Vue.js框架构建的应用程序中,Base64编码常用于处理图像、音频、视频等...
BASE64是一种基于64个字符的编码方案,这些字符包括大小写字母、数字以及"+"和"/",还有在URL中使用的"-"和"_"。它的主要目的是将二进制数据转换为ASCII字符串,以便在不支持二进制数据的环境中(如电子邮件)传输。...
在某些情况下,为了增加可读性或者兼容URL和文件名,Base64编码也会使用其他字符替换掉默认的“+”和“/”,例如使用“-”和“_”。 #### 二、Base64编码原理 Base64编码的核心思想是将每3个字节的二进制数据转换...
以下是对标题和描述中提到的三种Base64加密与解密方法的详细解释: 1. **基于JDK的Base64加密与解密** JDK 1.8及更高版本内置了Base64的支持。使用`java.util.Base64`类,我们可以方便地进行加密和解密操作。 ...
GetWebIP.exe文件名可能指的是一个能够获取Web服务器IP地址的程序,这与Base64编码解码工具的功能并不直接相关,但可能在同一应用场景中使用,例如在进行网络通信时,可能需要对通信内容进行Base64编码以适应网络...
总结起来,JavaScript实现Base64加密主要涉及编码和解码两个过程,可以使用内置函数或自定义函数来完成,对于复杂场景,还可以利用其他API和第三方库进行优化。在实际应用中,需要考虑编码字符集、跨域限制以及性能...
下面我们将详细讨论JavaScript如何实现Base64加密,并探讨其相关的应用和注意事项。 首先,了解Base64的基本原理。Base64是一种基于64个字符的编码方法,这64个字符包括大小写字母、数字以及两个特殊符号("+"和"/...
- 图片数据的URL编码:将Base64编码后的图片数据插入到HTML的`<img>`标签的`data:` URL中,可以避免额外的HTTP请求,提高页面加载速度。 - JSON Web Tokens (JWT):在JSON Web Token中,Base64用于编码Token的各个...
本篇文章将深入探讨Base64加密与解密算法,并通过具体代码实例进行详细讲解。 Base64的原理基于ASCII字符集,它将每3个字节(24位)的数据分为4组,每组6位。由于6位无法直接对应ASCII字符,Base64采用了64个字符的...
在处理Base64加密的URL时,可能会遇到一些问题,例如Java的`java.net.URL`类无法直接解析包含Base64编码的URL。这个问题通常发生在尝试从Base64编码的字符串中构建URL时,因为URL规范要求其组成部分必须符合特定的...
SHA.exe、HMAC.exe、BASE64.exe、URL.exe、MD5.exe这些文件可能是使用Delphi编写的独立可执行程序,分别对应实现了SHA加密、HMAC-SHA签名、Base64编码与解码、URL编码与解码以及MD5加密的功能。
标题“使用JS加密BASE64”指的是利用JavaScript来对字符串或二进制数据进行BASE64编码。这种操作通常用于将非ASCII字符转换为可以在URL、邮件头或其他仅支持ASCII的地方使用的格式。在描述中提到的“将字符串或二...
在互联网通信中,我们经常遇到MD5、URL编码和Base64这三种不同的加密或编码方式。接下来,我们将详细探讨这些技术及其在实际应用中的作用。 首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它...
在标签中提到了"加密"和"解密",这可能暗示了在实际应用中,Base64编码常与其他加密技术结合使用,以提供一个额外的安全层。比如,敏感信息在被AES加密后,再用Base64编码,使得即使数据在传输过程中被截取,没有...
6. **应用场景**:Base64常用于在网络上传输图片、视频等二进制数据的URL编码,XMLHttpRequest的POST请求,以及在JSON Web Tokens (JWT)中存储和传递安全信息等。 7. **性能考虑**:在大量数据的Base64编码和解码时...
二维码生成和图片Base64编码解码是两个在IT领域中常见的操作,广泛应用于数据传输、网页设计和移动应用等领域。下面将详细讲解这两个主题。 首先,二维码(Quick Response Code)是一种二维条形码,可以存储更多的...