본문

SHA-1, BASE64로 변환하는 로직(JAVA)

반응형

# SHA-1, BASE64로 변환


# BASE64

컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. 이 인코딩은 전자 메일을 통한 이진 데이터 전송 등에 많이 쓰이고 있다.


필자는 Hash Function SHA-1을 이용해 만든 Hash Code 데이터를 문자에 담아 전송해야할 일이 있었는데 HEX 값을 문자에 담아 전송하면 문자가 SPAM 처리 될 수 있기 때문에 BASE64를 이용해 ASCII로 변환후 데이터를 전송하기 위해 이 로직을 사용했었다.


Source 01) BASE64.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.source.common.test;
 
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
import org.springframework.util.Base64Utils;
 
public class BASE64 {
 
    public static void main(String[] args) throws NoSuchAlgorithmException {
        String contents = "The quick brown fox jumps over the lazy dog";
        String hashCode;
 
        byte[] buffers = encryptSha1(contents);
 
        hashCode = Base64Utils.encodeToString(buffers);
 
        System.out.println(hashCode);
 
    }
 
    public static byte[] encryptSha1(String input) throws NoSuchAlgorithmException {
        MessageDigest mDigest = MessageDigest.getInstance("SHA1");
        byte[] result = mDigest.digest(input.getBytes());
        
        /*
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < result.length; i++) {
            stringBuffer.append(Integer.toString((result[i] & 0xff) + 0x100, 16).substring(1));
        }
        System.out.println(stringBuffer.toString());
        */
        
        return result;
    }
}
 
cs


Result)

1
L9ThxnotKPzthJ7hu3bnORuT6xI=
cs


Environment)

1
2
3
4
5
6
7
8
9
10
<dependency>
    <groupId>org.apache.servicemix.bundles</groupId>
    <artifactId>org.apache.servicemix.bundles.spring-core</artifactId>
    <version>4.1.7.RELEASE_1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.1.1.RELEASE</version>
</dependency>
cs



- 참고 : https://ko.wikipedia.org/wiki/%EB%B2%A0%EC%9D%B4%EC%8A%A464

반응형

공유

댓글