자바에 자빠질때...

emptynote의 이미지

자바 언어를 가장 많이 했지만 아직도 자바는 너무 버겁네요.

자바 이용해서 섹션키 함 해 볼려구 하는데,

예제1 보시면 싱글턴이면 동일한 hash code를 넘겨 주어야 하겠지만,

어이 없게도 그렇지 않더군요.

싱글턴이 싱글턴이 아니라고 해도 모 그렇다 치고

thread 2개 만들고 첫번째는 암호화만 두번째는 복호화만 생각하고 테스트해 본건데,

자바때문에 자빠지네요. 왜냐구요.. 과거의 key 를 넣었을 경우

hash code도 다른것이 첫번째로 생성한 blowfishEncryptCipher 로는 복호화가 되는데,

두번째로 생성한 blowfishDecryptCipher로는 복호화가 안되네요.

하나하나 자기거로 만들려면 여러가지 많이 살펴야 하네요.

어째든 자바에서 제공하는 암호화 패키지로 암복호화 lib 클래스를 만들어야 하고

중요한것은 이렇게 만든 자체 암복화 lib가 thead safe함을 보장해 줘야 하는데요.

자바 thead 만들기 쉽지만 막상 thead safe한것을 증명하라고 하면 멍때리게 되네요.

자바의 synchronized가 있다고 해결되는문제가 아니라서요.

하여간 이런 투덜 거림은 제가 내공이 부족해서인지도 모르겠습니다.

==== 예제1 ======
Cipher blowfishEncryptCipher = Cipher.getInstance("Blowfish/CBC/PKCS5Padding");
Cipher blowfishDecryptCipher = Cipher.getInstance("Blowfish/CBC/PKCS5Padding");
System.out.println(String.format("blowfishEncryptCipher hashCode[%d], blowfishDecryptCipher hashCode[%d]", blowfishEncryptCipher.hashCode(), blowfishDecryptCipher.hashCode()));

emptynote의 이미지

"Stand Alone Complex"님 댓글의 예제 소스를 보니깐,

Cipher 인스턴스를 2개 생성하네요. 첫번째는 암호화 전용, 두번째는 복호화 전용.

그래서 제가 잘못 생각한건가 다시 예제를 돌려 봤는데,, 허거덕...

ㅠ.ㅠ 이렇때 어떻게 해야죠 쥐구멍에 숨고 싶네요.

본문글에는 안된다고했지만 다시해보니 잘 되네요.

에휴..눈에 모가 씌었나.. 분명 예제 돌리고 얻은 결론이었는데요..

테스트 한다고 이러저리 누더기 처럼 만든 프로그램인지라 그렇게 결론지었던 원본은 없다는것이 애석하네요.

테스트 프로그램도 에휴.. 이클립스에서 돌리고 svn연결해야했어나 후회가 되네요.

"Stand Alone Complex" 님 덕분에 잘못된 지식 하나 수정들어갑니다. 제 본문글..

에휴.. 수정할 수도 없구.. 혹시나 잘못된 지식을 사실처럼 받아 들이시면 안되는데..

본문글에서 잘못된 부분 바로 수정하는것이 좋을까요? ㅠ.ㅠ

----------- 잘못된 부분 시작 -----------------
자바때문에 자빠지네요. 왜냐구요.. 과거의 key 를 넣었을 경우

hash code도 다른것이 첫번째로 생성한 blowfishEncryptCipher 로는 복호화가 되는데,

두번째로 생성한 blowfishDecryptCipher로는 복호화가 안되네요.
----------- 잘못된 부분 종료 -----------------