본문 바로가기

전체 글155

비밀번호 등 보안상 민감한 정보를 저장할 때 자주 사용되는 '해싱'에 대해 비밀번호를 원문 그대로 데이터베이스에 저장하는 것은 절대 금물입니다데이터베이스가 해킹당하는 순간, 모든 사용자의 계정이 노출되며 이는 돌이킬 수 없는 피해로 이어집니다.본 글에서는 비밀번호를 안전하게 저장하기 위한 해싱의 기본 개념과 현대적인 구현 방법에 대해 알아보겠습니다. 해싱(Hashing)의 기본 개념해싱은 임의의 크기를 가진 데이터를 고정된 크기의 값으로 변환하는 과정입니다.비밀번호 해싱에 사용되는 해시 함수는 다음과 같은 특성을 가집니다.단방향성(One-way): 해시값에서 원래 입력값을 계산적으로 복구할 수 없음(비가역적)결정적(Deterministic): 동일한 입력은 항상 동일한 해시값을 생성눈사태 효과(Avalanche Effect): 입력값의 작은 변화도 완전히 다른 해시값을 생성충돌.. 2025. 4. 8.
AES(대칭키)와 RSA(비대칭키)의 혼합 암호화 방식 현대 웹 애플리케이션에서 사용자 데이터를 안전하게 보호하는 것은 필수적입니다.특히 비밀번호나 개인정보와 같은 민감한 데이터를 클라이언트에서 서버로 전송할 때 보안은 더욱 중요해집니다.이 글에서는 가장 널리 사용되는 두 가지 암호화 알고리즘인 AES와 RSA의 개념을 알아보고, 이 두 방식을 혼합하여 사용했을 때의 장점과 구체적인 구현 방법을 살펴보겠습니다.암호화의 기본 개념AES 암호화 (대칭키 암호화)AES(Advanced Encryption Standard)는 대칭키 암호화 방식으로, 하나의 키를 사용하여 암호화와 복호화를 모두 수행합니다.작동 방식: 같은 키로 데이터를 잠그고(암호화) 열 수 있음(복호화)특징: 빠른 속도, 효율적인 연산, 대용량 데이터 처리에 적합약점: 키를 안전하게 상대방에게 전.. 2025. 4. 8.
독서 모임 '책잇 - 책으로 잇다' 우리는 이런 모임이에요안녕하세요! '책잇'은 책을 통해 사람과 지식을 잇는 장기적인 지식 네트워크입니다.10년 후, 각자의 분야에서 빛나고 있을 우리가 지금부터 함께 성장하는 여정을 시작합니다.우리의 목적은 다음과 같아요좋은 네트워크가 생기길 막연히 기다리기 보다, 좋은 사람들끼리 능동적으로 네트워크를 형성해 보려고 해요.분야에 상관없이 여러 지식들을 교류하려고 해요.학습의 핵심 요소는 바로 ‘인출’! 읽기라는 ‘입력’ 위주의 행위보다 대화와 발표라는 ‘출력’ 위주의 행위를 통해 학습을 최적화 합니다.간단한 독서 발표를 통해 프레젠테이션에 익숙해져요.성장하고 탐구하는 건전한 습관을 형성해요.이런 분들을 찾고 있어요📈 꾸준한 성장을 갈망하는 분💬 배운 것을 나누고 토론하는 것을 즐기는 분🔄 다양한 분.. 2025. 4. 8.
직접 만나 본 하이럼의 법칙: 자체 제작 라이브러리의 의도치 않은 사용례와 그 해결 까지 소프트웨어 개발자라면 누구나 API를 설계하거나 라이브러리를 만들 때 사용자들이 우리의 의도대로 코드를 사용해주길 바랍니다.하지만 현실은 그렇게 단순하지 않죠.사용자가 많아질수록 우리가 예상하지 못한 방식으로 우리의 코드가 사용됩니다.이것이 바로 '하이럼의 법칙(Hyrum's Law)'의 핵심입니다.최근 제가 개발한 BridgeApi 라이브러리를 통해 하이럼의 법칙을 직접 경험하게 되었고, 이를 어떻게 인식하고 해결했는지 공유하고자 합니다.하이럼의 법칙이란?충분히 많은 수의 API 사용자가 있다면, 당신이 계약서에서 무엇을 약속했는지는 중요하지 않다. 당신의 시스템에서 관찰 가능한 모든 동작은 누군가에 의해 의존될 것이다.— 하이럼 라이트(Hyrum Wright)간단히 말해, 하이럼의 법칙은 사용자들이 .. 2025. 4. 6.
728x90