문자열 해시 암호화 (주의 : 복호화 불가)

카테고리 : 웹툴/암호
파일 해시 구하려면?


암호화 방식 선택하기

대문자 (.NET 등 기본값 : 대문자)

소문자 (PHP7 기본값: 소문자)



※ 이 툴은 자바스크립트로 작동됩니다. 소스코드 보안을위해 pack처리되어있으며 타 사이트에서는 사용할수없습니다.


해시 함수에 대해 알아보기 ...

기본적으로 여기에 있는 해시함수들은 복호화가 불가 합니다.


비둘기집 원리 라는 기본적인 원칙을 설명하면

가정) 집이 3개가 있어요 ㄱ,ㄴ,ㄷ 또 비둘기는 1,2,3,4 네마리가 있어요

규칙) 3으로 나눈 나머지 값이 같은 비둘기들을 한집에 넣는다.

이들은 최대한 겹쳐지는걸 피하고 집에 들어가야됩니다.(수학적으로 한쪽에 몰리지 않게끔)


ㄱ,ㄴ,ㄷ 집에 1,2,3 이 각각 들어가고

ㄱ 집에 4가 들어간다면 규칙을 모두 만족합니다.

이러한 간단한 규칙이 있어 쉽게 집을 분류 할수 있으나

ㄱ 집에 있다 만으로는 숫자가 몇이였나 알수 없습니다.


이와 같은 연산을 매우 많이 반복 하여 만들어진 함수가 해시 함수입니다.

집의 개수가 2의 256승, 2의 512승 등으로 많아진다면 입력값에 매칭되는 출력값 또한 매우 많습니다.

물론 저 개수보다 많이 입력하게 된다면 동일한 집에 들어 갈수 있지만..

해시 함수라는게 최대한 충돌을 피하고 값이 출력되게 만든 수식으로 구하는것

물론 수식이기때문에 같은 값이 나오는 "충돌"을 할수 있다.


또 랜덤한 값이 아닌 정교한 수식에 의해 나온 결과이므로..

입력값이 동일할때 출력값은 항상 동일하다.

그렇기 때문에 이 해시를 뚫는 방법은 암호 리스트를 해시함수로 암호화 한 이후

그 해시값들을 비교하면 된다.

이를 레인보우 테이블 이라고 하는데 레인보우 테이블을 막기위해 솔트값 등을 사용한다.

해시값은 조금만 바뀌어도 값이 변하는데

 

만약 사용자 입력값에 */-!^ 를 무조건 추가해서 해시값을 만들면..

1234 였던 암호가

1234*/-!^ 라는 암호가 된다.

이렇게 된다면 레인보우 테이블은 모두 */-!^가 붙은 해시를 구해야 되고 기존의 자료만으로는 뚫기가 어려워진다.

 

기존에 있던 레인보우 테이블이 아닌 추가된 값으로 다시 구해야 된다.

이와 같은 방식을 통해 막게 되는것!


아래의 오픈소스를 클릭하여 소스 전문을 분석해볼수 있을것입니다.

궁금하시면 아래의 깃허브에 들어가셔서 소스를 분석해보세요 ㅎㅎ

현재 페이지는 해당 소스로 만들어진 페이지 입니다.




대/소문자 해시가 필요한 경우가 있어서 대/소문자 모두 지원하는 툴을 제작하였습니다.

오픈소스 참조 https://github.com/emn178

'웹툴 > 암호' 카테고리의 다른 글

파일 해시 구하기  (0) 2019.04.10

 

저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)

예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.

만약, 본문 공유를 원하신다면 링크 공유를 해주세요

저작권 정책 확인하기
링크 공유하기

 댓글