转换字节数组为Base64字符串在android
所以我有用户输入密码从Android应用程序注册。转换字节数组为Base64字符串在android
在将密码保存到服务器上的数据库之前,我想将其转换为MD5单向散列并将其保存到数据库。
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
try {
md.update(password.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
byte raw[] = md.digest();
如何将此字节数组转换为Base64字符串。我在一些论坛上看到,android util软件包遗漏了Base64编码和解码,另一方面,我在android开发人员网站上看到了encodetoString函数。
任何帮助表示赞赏。
如果您希望您的应用程序在API级别8以下兼容,那么您可以引入第三方零件库来处理Base64编码。
Apache Commons Codec是一个你可以尝试。它包括一个Base64编解码器:http://commons.apache.org/codec/api-release/index.html。
下面是我是如何做到的......只是在我的问题上面的代码之后的代码。
StringBuffer hexString = new StringBuffer();
for (int i=0; i<raw.length; i++)
hexString.append(Integer.toHexString(0xFF & raw[i]));
password = hexString.toString();
谢谢。
对于这样一个基本的工具类,由于在API 8中有一个Base64的后期实现,我会将the latest source from the AOSP git repo复制到我自己的应用程序包中。它编译API级别3.
这样,您可以在应用程序中使用与官方Android Base64实现相同的API进行编码,并与所有Android版本保持兼容。当天API 8成为市场上最早的Android版本,你只需要删除你的包中的类的版本,并更新导入到官方的android.util.Base64。
的Eclipse提示:只要按照我在浏览器中提供给源链接,按Ctrl-A选择所有的代码,按Ctrl-C复制,打开Eclipse,点击包要创建类,按Ctrl-V。 .java文件是自动创建的,源代码直接使用正确的包声明进行修改。
一个非常宽松的许可证是一个很好的紧凑实施是[这里](http://iharder.sourceforge.net/current/java/base64/) – 2010-12-01 01:04:41
请问你从哪里可以告诉我从哪里搜索.... – Aakash 2010-12-01 01:05:13
酷让我尝试! – Aakash 2010-12-01 01:05:54