SQL Hash , HashBytes , HashThis , SHA512 , SHA2_512 암호화
페이지 정보
본문
SHA2 512 암호화 결과값이 다르게 표시가 됩니다. 왜?...
Hash , HashByte , HashThis 등 암호화 방식이 SQL 마다 다르기 때문이다.
1. Hash
해시 함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.
해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다.
http://www.mytecbits.com/tools/cryptography/sha2generator
http://hsp1116.tistory.com/35
2. SQL Server ≥ 2008
Select HASHBYTES('알고리즘', '암호화할값')
- 단방향 암호화라 복호화 불가
- 암호화 값 사이의 비교 가능( 대소문자 구분 가능 )
HASHBYTES ( '<algorithm>', { @input | 'input' } )
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
SQL Server ≥ 2016 : SHA2_256 | SHA2_512 만 가능
사용법
HashBytes('SHA2_512', '123456')
결과값 ( 130자 )
0xF5883C2CC912CC94B4E9ABEA9B24E9BCD6B7CC48A3E1E40E99866207B358E4371E55A0350715A8BEC6B4A1ACD95B5927388B4CB911C8FF2CC2554DCF1378D935
참고자료
http://t2t2tt.tistory.com/14
http://mgdjaxo.blogspot.kr/2015/04/mssql-hashbytes.html
https://docs.microsoft.com/ko-kr/sql/t-sql/functions/hashbytes-transact-sql
3. Oracle
DECLARE @HashThis nvarchar(MAX);
SELECT @HashThis = 'password';
SELECT HashBytes('SHA1', @HashThis);
사용법
DECLARE @HashThis nvarchar(MAX);
SELECT @HashThis = '123456';
SELECT HashBytes('SHA1', @HashThis);
결과값
참고자료
https://stackoverflow.com/questions/4892462/sql-server-2005-hashbytes-sha1-code-alternative-in-mysql
4. MariaDB ≥ 5.5
MariaDB > select SHA2('password',512);
암호화 길이는 224, 256, 384, 512를 지원합니다.
사용법
MariaDB > select SHA2('123456',512);
결과값 ( 128자 )
ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
참고자료
https://mariadb.com/kb/en/library/sha2/
5. MySQL ≥ 5.5.5
MySQL > select SHA2('password',512);
사용법
MySQL > select SHA2('123456',512);
결과값
6. PHP ≥ 5.12
사용법
echo hash('sha512', '123456') ."<br><br><br>";
결과값 ( 128자 )
ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
7. JavaScript
참고자료
http://pajhome.org.uk/crypt/md5/sha512.html
Hash , HashByte , HashThis 등 암호화 방식이 SQL 마다 다르기 때문이다.
1. Hash
해시 함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.
해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다.
http://www.mytecbits.com/tools/cryptography/sha2generator
http://hsp1116.tistory.com/35
2. SQL Server ≥ 2008
Select HASHBYTES('알고리즘', '암호화할값')
- 단방향 암호화라 복호화 불가
- 암호화 값 사이의 비교 가능( 대소문자 구분 가능 )
HASHBYTES ( '<algorithm>', { @input | 'input' } )
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
SQL Server ≥ 2016 : SHA2_256 | SHA2_512 만 가능
사용법
HashBytes('SHA2_512', '123456')
결과값 ( 130자 )
0xF5883C2CC912CC94B4E9ABEA9B24E9BCD6B7CC48A3E1E40E99866207B358E4371E55A0350715A8BEC6B4A1ACD95B5927388B4CB911C8FF2CC2554DCF1378D935
참고자료
http://t2t2tt.tistory.com/14
http://mgdjaxo.blogspot.kr/2015/04/mssql-hashbytes.html
https://docs.microsoft.com/ko-kr/sql/t-sql/functions/hashbytes-transact-sql
3. Oracle
DECLARE @HashThis nvarchar(MAX);
SELECT @HashThis = 'password';
SELECT HashBytes('SHA1', @HashThis);
사용법
DECLARE @HashThis nvarchar(MAX);
SELECT @HashThis = '123456';
SELECT HashBytes('SHA1', @HashThis);
결과값
참고자료
https://stackoverflow.com/questions/4892462/sql-server-2005-hashbytes-sha1-code-alternative-in-mysql
4. MariaDB ≥ 5.5
MariaDB > select SHA2('password',512);
암호화 길이는 224, 256, 384, 512를 지원합니다.
사용법
MariaDB > select SHA2('123456',512);
결과값 ( 128자 )
ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
참고자료
https://mariadb.com/kb/en/library/sha2/
5. MySQL ≥ 5.5.5
MySQL > select SHA2('password',512);
사용법
MySQL > select SHA2('123456',512);
결과값
6. PHP ≥ 5.12
사용법
echo hash('sha512', '123456') ."<br><br><br>";
결과값 ( 128자 )
ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
7. JavaScript
참고자료
http://pajhome.org.uk/crypt/md5/sha512.html
댓글목록
등록된 댓글이 없습니다.