# Hashing

65개의 포스트
post-thumbnail

Hashing

Hashing Hash Table이란? 해시 알고리즘을 위한 자료구조 key와 value로 저장되며 빠른 검색 속도를 제공 hash function을 이용하여 만들어진 해시 주소를 테이블의 index로 사용하며, 이 index를 통해 자료 저장, 접근 진행 hash table Hash function이란? 데이터의 효율적인 관리를 목적으로 키 값을 hash table의 주소로 변환하는 함수 설계 주의 사항 충돌이 적어야함 해시 함수의 값이 테이블 주소 영역 내에 고르게 분포 계산이 빨라야 함 주로 사용하는 해시 함수 제산 함수: 나머지 연산자를 사용해 나머지를 해시 주소로 사용 폴딩 함수: 키를 여러 부분으로 나누어 더하거

2023년 8월 29일
·
0개의 댓글
·
post-thumbnail

인코딩, 해싱, 암호화에 대한 이해

들어가며 무심코 사용하고 대강 이해하고 있던 인코딩, 해싱, 암호화에 대한 개념을 포스트를 통해 좀 더 정확히 이해하고자 합니다. 아래의 그림을 통해 큰 그림을 그리고 가보자 Encoding(인코딩) Data Encoding은 Scheme를 이용하여 데이터를 새로운 포맷으로 변경하는 것(Base64, ASCII Code 등) 현재의 포맷으로는 데이터 전송이 불가능할 경우 사용함 원래의 데이터로 복원하는 것(Decoding)이 쉽기 때문에 암호화 목적으로 사용하지 않음. 서로 다른 시스템간 동일한 포맷으로 데이터를 주고받기 위해 사용함 Hashing(해싱) Hashing은 입력값을 고정된 길이의 출력값으로 변경하는 것 해싱된 데이터는 원래의 데이터로

2023년 8월 7일
·
0개의 댓글
·
post-thumbnail

[Section 4] 인증/보안 기초

사진은 학교 도서관에서 공부하다 보인 너무 예쁜 무지개 사진! - 학교 들어간지 2일차인가 3일차 정도밖에 안됐었는데 공부하겠다고 도서관가서 코테 문제 푼게 지금봐도 신기함.. 물론 작심삼일이었지만 예쁜 무지개를 얻었으니^0^ 새로운 섹션에 들어왔다 드디어! 섹션3과는 독립적으로 공부할 수 있어 새로운 마음으로 다시 열심히 하게되었다. 평소에 많이 쓰는 보안 용어들에 대한 정확한 개념을 공부하니 더 재미있었던것 같기도 하다 ㅎㅎ HTTPS HTTP + Secure HTTP 통신 과정에서 데이터 암호화해서 전송 +) HTTP 는 stateless 대칭키 방식 + 비대칭 키 방식 -> 대칭 키 방식: Client와 Server가 데이터 주고받을 때 -> 비대칭 키 방식: 대칭키를 주고받을 때 서버로부터 응답받을 때 인증서도 같이 받음! (서버의 신원

2023년 5월 10일
·
0개의 댓글
·

[Section 3] Hashing, Token

해싱 > ### 암호화만 가능 항상 같은 길이의 문자열을 리턴합니다. 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나옵니다. 동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나옵니다. 문자열변환 해시 참고링크 레인보우 테이블과 솔트(Salt) 레인보우 테이블에 기록된 값의 경우에는 유출이 되었을 때 해싱을 했더라도 해싱 이전의 값을 알아낼 수 있으므로 보안상 위협이 될 수 있습니다. _이때 활용할 수

2023년 5월 3일
·
0개의 댓글
·
post-thumbnail

[Backend] Token

1. Hashing (해싱) 해싱은 가장 많이 쓰이는 암호화 방식 중 하나이다. 복호화가 가능한 다른 암호화 방식들과 달리, 해싱은 암호화만 가능하다. 해싱은 해시 함수(Hash Function)를 사용하여 암호화를 진행하는데, 해시 함수는 다음과 같은 특징을 가진다. 해싱 함수(Hash Function)의 특징 항상 같은 길이의 문자열을 리턴한다. 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나온다. 동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나온다. 아래 표는 대표적인 해시 함수중 하나인 SHA1에 특정 입력 값을 넣었을 때 어떤 결과가 리턴되는지 보여주는 예시이다. |비밀번호|해시 함수(SHA1) 리턴 값| |:---:|:---:| |‘password’|‘5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8

2023년 5월 3일
·
0개의 댓글
·
post-thumbnail

[DB] Hashing

정적 해싱 정적 해싱은 해시함수가 레코드의 search key를 고정된 버킷 집합에 매핑하는 방법이다. 버킷이란 하나 이상의 엔트리를 저장하는 저장공간으로 일반적으로는 하나의 디스크 블록과 크기가 같도록 설정한다. 정적 해싱을 사용하여 레코드를 조회하기 위해서 DBMS는 찾고자 하는 search key값을 해시함수에 넣어 레코드(혹은 인덱스 엔트리)가 포함된 버킷의 주소를 얻는다. 이때 버킷에 인덱스 엔트리가 들어가면 해시 인덱스, 레코드가 들어가면 해시 파일구조로 구분한다. 해시함수는 조회뿐만 아니라 레코드를 삽입, 삭제할 때에도 레코드의 위치를 찾기 위해 사용된다. 그런데 해시함수를 사용하면 서로 다른 두 search key값이 하나의 버킷으로 매핑되는 collision이 발생할 수 있기 때문에 레코드의 위치를 찾을 때에는 해시 함수를 통해 버킷의 주소를 얻은 뒤, 버킷 내부에서 순차적으로 탐색하여 원하는 레코드를 찾는 작업이 필요하다.

2023년 4월 15일
·
0개의 댓글
·
post-thumbnail

2023년 03월 09일 수업노트

01장 자바 개요 Array Array는 객체의 reference 들을 담고 있는 객체이다 Random Random이란 논리적으로 예측할 수 없는 것 일반적으로 Python이나 Java의 Random은 대부분 True Random과 유사한 결과값을 내놓는 Pseudo Random이다. Control Flow Decision-making if switch (예제) Looping for (예제) while (예제) do-while [(예제)](https://www.notion.so/do-

2023년 4월 5일
·
1개의 댓글
·
post-thumbnail

[python] json형식 로그 해싱, 암호화/복호화 하기

💡 DRF로 구축한 백엔드에 클라이언트가 CRUD 요청할 때마다 로그를 남기도록 코딩을 해놨는데요, 주요 사용자 정보는 해싱하고, 다른정보들은 암호화하고 압축하여 Amazon S3에 적재했습니다. 그 과정을 기록했습니다. 해싱(Hashing) Introduction to Salted-Hashed Passwords 개념 해싱은 단순히 특정 문자열을 어떤 함수를 통과시켜서 다른 문자열로 바꾸는 것을 의미합니다.(되돌릴 수 없음) 그래서 사용자의 패스워드에 많이 사용되었는데요, 문제는 같은 비밀번호를 사용하는 경우에 같은 해싱 비밀번호를 가진다는 것입니다. 그래서 도입된 것이 Salt-Hashed

2023년 3월 22일
·
0개의 댓글
·
post-thumbnail

코드스테이츠 백엔드 부트캠프 61일차 - [인증/보안] 기초

리마인드 HTTP Section4 - [인증/보안] 기초 HTTPS > HTTPS = HTTP + Secure HTTP 프로토콜 내용을 암호화한 것 SSL 혹은 TLS라는 알고리즘을 이용해 암호화 암호화 >- 제 3자가 서버와 클라이언트가 주고받는 정보를 탈취할 수 없도록 하는 것 데이터를 탈취 당하더라도 그 내용을 알아볼 수 없게 하는 것 개념 설명 `public-key와 private-key`는 한 세트로 존재해야만 한다. `public-key` `public-key`는 누구나

2023년 3월 13일
·
0개의 댓글
·
post-thumbnail

[Backend] 해싱(hashing)과 토큰(token)

해싱(hashing) 가장 많이 쓰이는 암호화 방식 중 하나 이다. 복호화가 가능한 다른 암호화 방식들과 달리, 해싱은 암호화만 가능하다. 해시 함수의 특징 항상 같은 길이의 문자열 리턴 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나온다. 동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나온다. 레인보우 테이블과 솔트(salt) 항상 같은 결과값이 나온다는 특성을 이용해 해시 함수를 거치기 이전의 값을 알아낼 수 있도록 기록해놓은 표인 레인보우 테이블이 존재한다. 레인보우 테이블에 기록된 값의 경우에는 유출이 되었을 때 해싱을 했더라도 해싱 이전 값을 알아낼 수 있기 때문에 보안상 위협이 될 수 있다. 이 때 활용할 수 있는 것이 솔트(salt) 이다. 솔트는 소금이라는 뜻으로, 말 그대로 소금을 치듯 해싱 이전 값에 임의의 값을 더해 데이터가 유출 되더라도 해싱 이전의

2023년 3월 8일
·
0개의 댓글
·

[인증/보안] Hashing, Token, JWT

1. 해싱 (Hashing) 해싱이란? 가장 많이 쓰이는 암호화 방식 중 하나. 복호화가 가능한 다른 암호화 방식들과 달리, 해싱은 암호화만 가능함.(복호화가 불가능!!) 해싱은 해시 함수(Hash Function)을 사용하여 암호화를 진행함. Salt 그러나 해시 함수는 동일한 값을 넣으면 항상 같은 결과값을 리턴함 -> 결과값과 해싱 이전 값을 기록해놓은 레인보우 테이블에 기록된 값의 경우 보안 상 위협이 될 수 있음. 그래서 Salt(secret)를 사용하여 해싱 이전 값에 임의의 값을 더해서 해싱 값이 유출되더라도 암호화 이전 값을 알아내기 어렵게 만듬. 해싱의 목적 데이터 그 자체를 사용하는 것이 아니라, 데이터가 동일한지 여부만을 확인하는 것이 목적임. 그래서 복호화가 불가능해도 됨. 오히려 복호화가 불가능해서 사이트 관리자가 사용자의 로그인정보를 악용하는 등의 가능성을 없앨 수 있음. 서버

2023년 3월 8일
·
0개의 댓글
·
post-thumbnail

[Backend] Token + Promise

🦋 해싱 가장 많이 쓰이는 암호화 방식 해시함수로 암호화만 가능, 복호화는 안됨 특징 항상 같은 길이의 문자열을 리턴한다. 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나온다. 동일한 문자열에 동일한 해시함수를 사용하면 항상 같은 결과값이 나온다. 레인보우 테이블 : 해쉬함수 거치면 항상 같은 결과값이 나옴을 이용해 해시함수 거치기 전 값을 기록한 테이블 Salt : 레인보우테이블을 방지하기 위한 것, 해싱 이전값에 임의의 값을 더해 이전값을 알아내기 어렵게 만드는 방법 사이트관리자는 사용자의 비밀번호를 모른다. 비밀번호를 해싱하여 저장하고 사용자가 해싱한 값끼리 비교해서 일치한지 따진다. 이처럼 민감한 데이터를 다룬다. 🦋 토큰 ![](https://velog.velcdn.com/images/nowaveosu/post/526e3cf2-43e1-4d52-bca2-bc5d4fe3e4a1/image.

2023년 3월 8일
·
0개의 댓글
·
post-thumbnail

해싱된 암호를 담기 전에 save 되는 문제

salt와 hashedpassword를 각각 분리해서 await를 거니까 해결됨... 이중으로 쓴것만 봐서 그것만이 답인줄 알았다...

2023년 3월 3일
·
0개의 댓글
·

백준15829번:Hashing

인트로: 이번 백준 문제는 15829번 Hashing이다. 문제: 문제해석: 문제에서 r의 값은 31, M의 값은 123456789로 정했다. 이 문제에서는 해쉬 알고리즘 연산에 대한 지식을 요하는 문제여서 바로 찾아봤다. 아래에 식을 통해서 모듈러 연산이 사용된다는것을 알아낼 수 있었다.

2023년 2월 3일
·
0개의 댓글
·

[자바의정석]Chapter 11. 컬렉션 프레임웍(collections framework)

1. 컬렉션 프레임웍(Collections Framework) > 데이터 군(群)을 저장하는 클래스들을 표준화한 설계 컬렉션(Collection) : 다수(多數)의 데이터,즉 데이터 그룹을, 프레임웍은 표준화된 프로그래밍 방식 List, Set, Map |인터페이스|데이터 순서|중복|구현클래스| |-------|---------|--|--------| |List|유지|허용|ArrayList, LinkedList, (Stack, Vector) 등| |Set|x|미허용|HashSet, TreeSet 등 |Map|x|미허용| HashMap,TreeMap, (Hashtable, Properties)등| 1.1 핵심 인터페이스 ~ 1.4 Stack과 Queue Stack, Vector 보다는 ArrayList, LinkedList 사용 추천(collection framework이 만들어지기 이전부터 존재)

2023년 1월 26일
·
0개의 댓글
·
post-thumbnail

Section 4 [인증 / 보안] 기초 (1)

학습목표 암호화와 hashing, salting 등의 개념을 이해할 수 있다. HTTP와 HTTPS의 차이점을 이해할 수 있다. 권한 부여(Authorization)와 인증(Authentication)에 대해 이해할 수 있다. 쿠키의 작동 원리를 이해할 수 있다. 클라이언트, 서버, 데이터베이스의 전체 동작을 이해할 수 있다. 서비스의 보안과 관련된 방법을 알아보고 원리 및 장점 및 단점을 이해할 수 있다. HTTPS HTTPS(Hypertext Transfer Protocol Secure) 는 HTTP over SSL(TLS), HTTP over Secure라고 부르기도 한다. HTTPS는 HTTP 요청을 SSL 혹은 TLS라는 알고리즘을 이용해, HTTP 통신을 하는 과정에서 데이터를 암호화하여 전송하는 방법이다. HTTPS는 다음을 목적으로 사용한다. 암호화 첫 번째는 제 3자가 서버와 클라이언트가 주고받는

2023년 1월 12일
·
0개의 댓글
·
post-thumbnail

Hashing, Token

오늘은 Hashing, Token에 대해 알아보자! 먼저, Hashing이란 무엇일까? 해싱 (Hashing) > 가장 많이 쓰이는 암호화 방식중에 하나인 해싱 복호화가 가능한 다른 암호화 방식들과 달리, 해싱은 암호화만 가능하다. 해싱은 해시 함수(Hash Function)을 사용하여 암호화를 진행하는데, 해시 함수는 다음과 같은 특징을 가진다. > - 항상 같은 길이의 문자열을 리턴. 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나온다. 동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나온다. | 비밀번호 | 해시 함수(SHA1) 리턴 값 | | --- | --- | | ‘password’ | ‘5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8’ | | ‘Password’ | ‘8BE3C943B1609FFFBFC51AAD666D0A04ADF83C9D’ | | ‘kimc

2023년 1월 6일
·
0개의 댓글
·
post-thumbnail

Hashing

❤️‍🔥 해싱 (Hashing) 복호화가 가능한 다른 암호화 방식들과 달리, 해싱은 암호화만 가능합니다. 해싱은 해시 함수(Hash Function)을 사용하여 암호화를 진행하는데, 해시 함수는 다음과 같은 특징을 가집니다. 항상 같은 길이의 문자열을 리턴합니다. 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나옵니다. 동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나옵니다. 아래 표는 대표적인 해시 함수중 하나인 SHA1에 특정 입력 값을 넣었을 때 어떤 결과가 리턴되는지 보여주는 예시입니다. 이 링크에서 SHA1 함수를 직접 사용해볼 수도 있습니다. ![](https://velog.velcdn.com/images/youa7878/post/aeba6132-e4d9-4586-bd92-764a78f354fb/image.png

2023년 1월 6일
·
0개의 댓글
·
post-thumbnail

인증/보안

HTTPS HTTP + Secure HTTPS 는 Hyper Text Transfer Protocol Secure Socket layer 의 약자다. HTTP over SSL(TLS), HTTP over Secure라고 부르기도 한다. HTTPS는 HTTP 요청을 SSL 혹은 TLS라는 알고리즘을 이용해, HTTP 통신을 하는 과정에서 데이터를 암호화하여 전송하는 방법이다 암호화 대칭키 암호화 키 한개로 암복호 비대칭키 암호화 암호/복호 키가 다름 개인키로 암호, 공개키로 복호 = 전자서명 (인증용) 공개키로 암호, 개인키로 복호 = 암호화 (정보 보호) 해시 시드 + 본문의 해시 값이 같은지 확인 HTTPS의 암호화 방식 대칭, 비대칭키 암호화 방식 사용 인증서 - 전자 서명 클라이언트에서 만든 대칭키 대칭키를 암호화하여 전달 - 비대칭키(공개키) 암호화 인증서

2022년 11월 20일
·
0개의 댓글
·
post-thumbnail

HTTPS

HTTPS 암호화 대칭키 양쪽이 공통의 비밀 키를 공유하여 데이터를 암호화 및 복호화하는 것 서버와 클라이언트가 데이터를 주고받을 떄 주로 사용하는 방법 비대칭키 알고리즘보다 덜 복잡하다. 비대칭키 각각 공개키와 비밀키를 가지고 상대가 나의 공개키로 암호화한 데이터를 개인(나)이 가진 비밀키로 복호화하는 것 대칭키 알고리즘보다 훨씬 복잡하다. HTTPS에서 사용하는 암호화 방법. 중간에 대칭키가 탈취되더라도 개인키가 없이는 복호화할 수 없기 때문에 HTTPS에선 비대칭키를 사용한다. 인증서 CA 인증서를 발급해주는 엄격하게 공인된 기관 Certificate Authority, CA라고 부른다. CA들은 서버의 공개키와 정보를 CA의 비밀키로 암호화하여 인증서를 발급해준다. Hashing 모든 값에 대해 해시 값을 계산하는데 오래걸리지 않아야 한다. 최대한 해시 값을 피해야

2022년 11월 17일
·
0개의 댓글
·