簡體   English   中英

將字節數組轉換為android中的Base64字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM