Make SHA1 encryption on Android?

前端 未结 4 664
悲哀的现实
悲哀的现实 2021-01-01 04:57

Can you suggest me about how to encrypt string using SHA1 algorithm ? I\'ve searched about it. But no luck.

Thanks in advance.

4条回答
  •  粉色の甜心
    2021-01-01 05:50

    binnyb's convertToHex method is not working properly. A more correct one that works for me is:

    private static String convertToHex(byte[] data) { 
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < data.length; i++) { 
            int halfbyte = (data[i] >>> 4) & 0x0F;
            int two_halfs = 0;
            do { 
                if ((0 <= halfbyte) && (halfbyte <= 9)) {
                    buf.append((char) ('0' + halfbyte));
                }
                else {
                    buf.append((char) ('a' + (halfbyte - 10)));
                }
                halfbyte = data[i] & 0x0F;
            } while(two_halfs++ < 1);
        } 
        return buf.toString();
    } 
    
    
    public static String SHA1(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException  { 
        MessageDigest md = MessageDigest.getInstance("SHA-1");
        byte[] sha1hash = new byte[40];
        md.update(text.getBytes("iso-8859-1"), 0, text.length());
        sha1hash = md.digest();
        return convertToHex(sha1hash);
    } 
    

    use the SHA1 method to get your sha1 string.

    Update: providing a complete answer

提交回复
热议问题