개발자
민감정보인 비밀번호의 경우 스프링 시큐리티가 제공해주는 password encoder를 써서 단방향 암호화를 한 뒤 일치여부를 체크하면 되지만 이름, 전화번호같이 다시 복호화해서 보여줄 필요가 있는 데이터들은 보통 어떤 라이브러리를 이용해서 처리들 하시는지 궁금합니다. @Bean public StandardPBEStringEncryptor jasyptStringEncryptor() { StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); encryptor.setPassword(password); encryptor.setSaltGenerator(new StringFixedSaltGenerator(salt)); return encryptor; } 지금 만들고있는 사이드 프로젝트에서는 jasypt 라이브러리의 StandardPBEStringEncryptor를 사용하여 salt값을 고정하여 사용중인데 맞는 방법인지 모르겠고.. jasypt에 대해 검색해보면 properties나 yml파일 암호화 관련된 이야기가 대부분이던데 혹시 엉뚱한 라이브러리를 사용하고있는건 아닌가 싶네요.. 다른 분들은 어떤걸 사용하시는지가 궁금해서 질문 드립니다.
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 02월 08일
Jasypt는 프로젝트의 속성 파일(properties, YAML 등)을 암호화하는데 주로 사용되는 라이브러리이지만, 개인적인 데이터를 암호화하고 복호화하는 경우에도 사용할 수 있습니다. 따라서 전화번호나 이름과 같은 정보를 암호화하고 복호화하는 것에 Jasypt를 사용하는 것은 충분히 가능합니다. 그러나 Jasypt 외에도 Bouncy Castle이나 Java Cryptography Extension (JCE)와 같은 다른 라이브러리들도 존재하니, 이들 중에서 필요에 가장 잘 맞는 라이브러리를 선택해 사용하는 것도 고려해볼 만합니다. 또한 Cipher 클래스가 제공하는 AES encryption 기능을 직접 사용하여 구현하는 방법도 있습니다. 이 경우, 리소스 관리 및 세부 설정에 대한 완전한 제어 권한을 갖게 됩니다. 마지막으로, 데이터를 "패킹" 하여 특정 유저만 해독할 수 있는 방법을 생각해 볼 수 있습니다. 예를 들면 스프링 시큐리티가 제공하는 JWT와 아주 비슷한 방식입니다. 이런 경우에는 '복호화' 단계가 보안 프로세스의 일부가 됩니다. 결국 어떤 라이브러리를 사용하든 간에, 주요한 것은 사용자의 데이터를 적절하게 보호하는 것입니다. 이는 서버와 클라이언트 모두에서 신중하게 처리되어야 하며, 라이브러리 선택은 그 과정의 일부일 뿐입니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!