Programming/Mobile

[안드로이드] One-way Hash (MD5, SHA-256) 코드

tavris 2018. 10. 2. 15:47

One-Way Hash (MD5, SHA-256) 코드



안드로이드(Android) 어플리케이션을 만들때 가장 빈번하게 사용되고, 유용한 One-Way Hash를 생성하는 코드입니다.

그 중, 가장 많이 사용되는 해쉬인 MD5와 SHA-256을 생성해주는 코드입니다. static을 사용하도록 되어 있어 Object를 생성하지 않고 바로 사용 할 수 있습니다.




MD5 Hash Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static String md5(String str){
    String MD5 = "";
    try{
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(str.getBytes("UTF-8"));
        byte byteData[] = md.digest();
        StringBuffer sb = new StringBuffer();
        for(int i = 0 ; i < byteData.length ; i++) sb.append(Integer.toString((byteData[i]&0xff+ 0x10016).substring(1));
        MD5 = sb.toString();
    }
    catch(NoSuchAlgorithmException e) { e.printStackTrace(); MD5 = null; }
    catch (UnsupportedEncodingException e) { e.printStackTrace(); MD5 = null; }
    return MD5;
}


SHA-256 Hash Code

1
2
3
4
5
6
7
8
9
10
11
12
public static String sha256(String str) {
    String SHA = "";
    try{
        MessageDigest sh = MessageDigest.getInstance("SHA-256");
        sh.update(str.getBytes());
        byte byteData[] = sh.digest();
        StringBuffer sb = new StringBuffer();
        for(int i = 0 ; i < byteData.length ; i++) sb.append(Integer.toString((byteData[i]&0xff+ 0x10016).substring(1));
        SHA = sb.toString();
    }catch(NoSuchAlgorithmException e) { e.printStackTrace(); SHA = null; }
    return SHA;
}