Java/Android中SHA1和SHA256加密
阿新 • • 發佈:2019-01-29
SHA1(Secure Hash Algorithm,譯作安全雜湊演算法)是Hash演算法中的一種,適合用於數字簽名資料認證,加密過程不可逆不能進行解密。
MD5與SHA1都是Hash演算法,MD5輸出是128位的,SHA1輸出是160位的,SHA256輸出是256位,MD5比SHA1快,SHA1比MD5強度高。
程式碼:
/** * SHA加密 * * @param strSrc * 明文 * @return 加密之後的密文 */ public static String shaEncrypt(String strSrc) { MessageDigest md = null; String strDes = null; byte[] bt = strSrc.getBytes(); try { md = MessageDigest.getInstance("SHA-256");// 將此換成SHA-1、SHA-512、SHA-384等引數 md.update(bt); strDes = bytes2Hex(md.digest()); // to HexString } catch (NoSuchAlgorithmException e) { return null; } return strDes; } /** * byte陣列轉換為16進位制字串 * * @param bts * 資料來源 * @return 16進位制字串 */ public static String bytes2Hex(byte[] bts) { String des = ""; String tmp = null; for (int i = 0; i < bts.length; i++) { tmp = (Integer.toHexString(bts[i] & 0xFF)); if (tmp.length() == 1) { des += "0"; } des += tmp; } return des; }