You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dec주의사항: enc를 프로그램 실행해야 dec를 했을 때, 확장자가 제대로 출력됨 (default: exe)
both로 진행 시, 완료 후 기존 파일과 새롭게 복호화된 파일이 같은 파일인지 확인하는 checkSameFile 메소드 호출되서 확인하고 종료됨.
check는 파일이 같은 여부를 확인시켜준다.
첫번째 파일과, 두번째 파일의 경로를 입력받은 후, Utils.java에 있는 checkSameFile메소드 실행시킨다.
exit실행시 종료된다.
FileEncryption.java
public static void fileEnc
파일을 암호화, 복호화 하는 프로그램이다.
input - mode(암호화 - enc, 복호화 - dec), salt(Salt를 통한 보안성 향상), derivedKey(KeyDerivation을 통해서 생성한 키), String path(원본파일 경로), String o_path(파일을 저장할 경로), String extension(파일을 복호화할 때, 원본 파일의 확장자명을 기억하게 하기 위한 문자열)
Output - void
메소드 실행원리(암호화)
입력된 salt값을 "Salt"파일에 저장을 함.
MessageDigest를 사용한 md객체 생성 후, BouncyCastle에서 제공한 SHA1함수를 사용한다고 명시.
md값에 derivedKey와 salt값을 Concat해서 update시킴
password_check를 생성하여, 해당 md객체 값을 digest해서 "password_check"값에 저장시킴(후에 확인용)
후에, 암호화 작업이 시작됨. 암호화 작업 도중에 완료된 바이트를 읽어서, 원본 사이즈랑 비교하면서 percentage만듬
percentage가 5%마다, Progress Bar가 업데이트 되게함. \r을 사용하여 출력된 것을 지우면서 갱신시킴.
완료되면, 완료되었다는 문구 출력과 암호화하는데 걸린시간을 출력시킴.
메소드 실행원리(복호화)
MessageDigest를 사용한 md객체 생성 후, BouncyCastle에서 제공한 SHA1함수를 사용한다고 명시.
md값에 derivedKey와 salt값을 Concat해서 update시킴
password_check2를 생성하여, 해당 md객체 값을 digest해서 "password_check"값에 대조시킴(확인용)
password_check2가 password_check가 같다고 하면, 복호화 과정을 진행시키고, 다르면, 종료됨.
후에, 복호화 작업이 시작됨. 암호화 작업 도중에 완료된 바이트를 읽어서, 원본 사이즈랑 비교하면서 percentage만듬
percentage가 5%마다, Progress Bar가 업데이트 되게함. \r을 사용하여 출력된 것을 지우면서 갱신시킴.
완료되면, 완료되었다는 문구 출력과 암호화하는데 걸린시간을 출력시킴.
public statid void run(mode, salt, derivedKey, path, o_path, extension)
FileEncryption을 시작하게 하는 메소드
public static void run(mode, salt, derivedKey, path, extensions)
main프로그램과, run프로그램을 자연스럽게 연결시켜주는 메소드.
o_path는 암호화&복호화 파일과 같은 디렉토리에 만들고 싶을때 씀.
getFileDir를 사용하여, 디렉토리 위에 쓸수있게함.
private static int updateProgress(progressPercentage, progressBarCount)
ProgressBar를 표현하기 위한 메소드이다.
5% 마다 출력된 값을 갱신시키면서, 자연스럽게 ProgressBar가 증가하는 것을 보여주는 것을 나타냄.