首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

在 Java 中怎么进行 BASE64 编码和解码(转)

2012-09-09 
在 Java 中如何进行 BASE64 编码和解码(转)BASE64 编码是一种常用的字符编码,在很多地方都会用到。JDK 中提

在 Java 中如何进行 BASE64 编码和解码(转)

BASE64 编码是一种常用的字符编码,在很多地方都会用到。JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和解码。下面是本人编的两个小的函数,分别用于 BASE64 的编码和解码:?

// 将 s 进行 BASE64 编码?
public?static?String?getBASE64(String?s) {?
if?(s ==?null)?return?null;?
return?(new?sun.misc.BASE64Encoder()).encode( s.getBytes() );?
}?

// 将 BASE64 编码的字符串 s 进行解码?
public?static?String?getFromBASE64(String?s) {?
if?(s ==?null)?return?null;?
BASE64Decoder decoder =?new?BASE64Decoder();?
try?{?
byte[] b = decoder.decodeBuffer(s);?
return?new?String(b);?
}?catch?(Exception e) {?
return?null;?
}?
}


------

回复此文章 |?

import sun.misc.BASE64Encoder;?
import sun.misc.BASE64Decoder;?

------

回复此文章 |?


http://dev2dev.bea.com.cn/techdoc/webser/20030573.html?

作者:TIM PIJPOPS?

使用报文摘要?

Java中提供了计算报文摘要的另一个简单的方法,那就是使用java.security.MessageDigest类。下列代码片断显示了如何将MD5报文摘要算法(128位的摘要)应用到密码字符串:?
MassageDigest md=?
MessageDigest.getInstance("MD5");?
md.update(originalPwd.getByetes());?
byte[] digestedBytes=md.digest();?

也使用报文摘要创建校验和、文本的唯一ID(也叫做数字指纹)。在签写ARJ文件会发生:校验和是根据ARJ文件的内容计算出来的,然后被加密,并且用base64的加密格式存放在manifest.mf文件中。base64是编码任意二进制数据的一种方法,得到的结果仅包含可打印字符(注意,base64编码数据占用的空间比转换前多三分之一)。由于报文摘要算法输出的结果是字节数组,可以使用base64编码将哈希字节转换成字符串,以便能将该字符串存放在数据库的varchar字段中。现在有许多base64编码器,但是最简单的方法是使用weblogic.jar库中的编码器:weblogic.apache.xerces.utils.Base64。该类的作用微乎其微,如下面的代码例子所示:?

String digestedPwdString =?
new String(Base64.encode(digestedPwdBytes));?


------

回复此文章 |?


http://minnigerode.org/CA-SF/dave/BasicJBossAAC.html?

Feb. 2004?
M. David Minnigerode?
minniger@minnigerode.org?

import?javax.mail.internet.*;?
import?java.security.*;?
public?String?getEncodedHash(String?clearText){?
ByteArrayOutputStream baos =?new?ByteArrayOutputStream();?
OutputStream out = MimeUtility.encode(baos,"base64");?
MessageDigest md = MessageDigest.getInstance("SHA");?
if(clearText ==?null) clearText =?"";?
byte [] in = clearText.getBytes();?
byte [] digested = md.digest(in);?
out.write(digested);?
out.close();?
return?new?String(baos.toByteArray(),?"ISO-8859-1");?
}?

热点排行