将字节数组转换为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 。

对于这样的基本实用程序类,由于API 8中的Base64实现较晚,我会将AOSP git repo中的最新源代码复制到我自己的应用程序包中。 它使用API​​级别3进行编译。

这样,您可以使用与官方Android Base64实现相同的API在您的应用程序中编码,并保持与所有Android版本兼容。 API 8成为市场上最古老的android版本,你只需删除你的包中的类版本并将导入更新到官方android.util.Base64。

Eclipse提示:只需按照我在浏览器中提供给源的链接,按Ctrl-A选择所有代码,按Ctrl-C复制它,打开Eclipse,单击要创建类的包,按Ctrl- V. 自动创建.java文件,并使用正确的包声明直接修改源。

我是这样做的…在我的问题上面的代码之后只是这段代码。

 StringBuffer hexString = new StringBuffer(); for (int i=0; i 

谢谢。