은행 데이터베이스 하나 만들고,
ATM 기계들 만들어서 은행놀이 좀 해보고 싶은데
서버에 컴공이 한명 있다보니까 이게 보안이 좀 신경쓰였다
ATM기계에다가 프로그램을 깔아놔도, 이게 그냥 프로그램 코드를 열어볼 수 있는 상황이다
그러면 프로그램을 변조해서 다른 메세지를 내 데이터베이스로 보내면 꼼짝없이 돈이 줄줄 흘러간다.
이걸 막으려고 생각을 나름 해봤는데, 프로그램 코드를 암호화시킨다음에 실행할때마다 복호화해서 돌리면 어떨까 했다.
코드를 열어봐도 아무것도 못하게 만들어버리는거다.
마침 OpenComputers 모드에 data card라는 아이템이 있었다. 다양한 고급 알고리즘 함수를 제공한다고 설명서엔 써있는데,
그 아이템 2티어에 AES 128비트 암호화 함수가 내장되어 있더라. 왜있는진 모르겠는데 있음
모드 만든놈이 개변태새기인거는 잘 알겠다.
아무튼 신나서 바로 암호화 api를 만들어봤다.
구동 테스트도 해봄
이 코드를 암호화 해보기로 했다.
그냥 hello! (1/100)부터 시작해서 hello! (100/100)까지 출력하는 프로그램이다.
내가 쓰려고 만든 api 안엔 대충 이런 함수들이 있다.
먼저 암호화 할때 쓸 128비트 키를 랜덤하게 하나 만든다음 저장했다.
key 라는 파일명으로 저장해놨다.
해당 파일을 열어보면 이렇게 나온다
그냥 아스키코드 16개 = 128라서 저따구로 나오더라
이제 기존의 파일 코드를 위의 키값을 사용해서 암호화했다.
암호화된 코드의 모습이다
진짜 ㅈㄴ 하나도 못알아보겠다. 흡족하다
한줄한줄 AES로 바꿔버린다음 걔네 바이트를 숫자로 기록하게 시켰다.
그냥 저장하니까 중간중간 줄바꿈문자 들어가있어서 줄이 달라져가지고 복호화에 차질이 생겼음
88줄짜리를 변환했는데 104줄 되어있고 이래서 걍 풀어서 바이트를 기록하게 했다.
이제 다시 복호화 해본다.
원래의 코드가 한줄한줄 복원되는 모습이 보인다. 결과를 확인해봤다.
원래의 코드가 정확하게 돌아왔다.
실행도 ㅈㄴ 잘된다.
아주 맘에 든다.
바로 페이스트빈에 붙여서 내 계정에다가 적어놨다.
제일 골치였던거를 해결했으니
이제 은행 만들어지기까지 얼마 안남은거같다
뿌듯함
그리고 이거 마크 맞다
ㅁㅊ;;;
씹
이게 대체 먼소리야 ㄷㄷㄷ
막짤갑 - dc App
썩은물이다 ㄷㄷ
님도 컴공임?