[英]convert byte array to Base64 String in android
所以我讓用戶輸入密碼來從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實現,我會將AOSP git repo中的最新源代碼復制到我自己的應用程序包中。 它使用API級別3進行編譯。
這樣,您可以使用與官方Android Base64實現相同的API在您的應用程序中編碼,並保持與所有Android版本兼容。 API 8成為市場上最古老的android版本,你只需刪除你的包中的類版本,並將導入更新到官方android.util.Base64。
Eclipse提示:只需按照我在瀏覽器中提供給源代碼的鏈接,按Ctrl-A選擇所有代碼,按Ctrl-C復制它,打開Eclipse,單擊要創建類的包,按Ctrl- V. 自動創建.java文件,並使用正確的包聲明直接修改源。
如果您希望應用程序在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();
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.