본문 바로가기
반응형

프로그래밍 언어/TypeScript5

[TypeScript] Bcrypt를 이용한 비밀번호 해쉬화(암호화) 회원가입을 할 때 데이터베이스에 비밀번호 같이 보안에 민감한 정보를 그냥 저장하면 안되고 암호화해서 저장하는게 안전하다. node.js에서는 주로 Bcrypt를 사용해서 비밀번호 해쉬화를 해 저장한다. 해쉬화는 단방향으로 해쉬 알고리즘을 이용하여 비밀번호를 암호화시키며 당연히 단방향이라 복구는 불가능하다. 다시 말하면 한쪽 방향으로만 암호화를 하는 단방향 암호화이기 때문에 암호화는 가능하지만 복호화는 불가능하다. 기존 해시 함수에서는 무차별 대입 공격(고성능 GPU를 이용해 무차별적으로 해시함수를 대입해 같은 digest를 찾는 공격)에 취약했는데 bcrypt는 salting 방식을 통합하여 취약점을 보완했다. 임의의 salt 값을 덧붙여 hash 함수를 진행하기 때문에 같은 비밀번호여도 다른 diges.. 2023. 12. 15.
[TypeScript] 타입스크립트 알아보기 (2) 함수, 인터페이스, 제네릭 함수 타입스크립트는 다음 코드와 같이 매개 변수에 타입을 추가할 수 있다. function sum(a:number, b:number) { return a+b; } 이러면 이 함수를 호출할 때 매개변수를 숫자가 아닌 다른 걸 넣게 되면 바로 에러가 나게 된다. 여기에 더하여 반환값에도 타입을 할당할 수 있다. function sum(a:number, b:number) :number { return a+b; } 이러면 sum이라는 함수는 두 개의 숫자를 매개변수로 받아 숫자를 반환하는 함수라는 것을 알 수 있다. 타입스크립트에서는 함수의 인자를 모두 필수 값으로 생각한다. 자바스크립트에서는 위 코드의 sum 함수에서 매개변수를 하나만 주어도 문제가 발생하지 않는다. 하지만 타입스크립트에서는 두 개의 숫자를 .. 2023. 8. 22.
[TypeScript] 타입스크립트 알아보기 (1) 쓰는 이유와 타입의 종류 요새는 사람인을 보던 잡플래닛을 보던 프론트엔드건 백엔드건 거의 무조건 타입스크립트를 쓰는 것 같다. 자바스크립트와는 여러 가지 차이점이 있겠지만 제일 큰 차이는 자바스크립트에 타입을 부여했다는 것이다. (그래서 타입스크립트인거겠지...) 그렇다면 왜 타입스크립트를 쓰는 것일까? 에러의 사전 방지 잘 알려졌다시피 자바스크립트는 타입이 동적으로 할당이 된다. 그로 인해 많은 문제가 발생하는데 이렇게 덧셈을 하는 코드가 있다고 하자. 근데 만약 개발자의 실수든 뭐든 해서 밑에 코드가 다음과 같이 바뀐다면 말도 안되는 답이 나오는 것이다. 이런 에러가 발생할 일이 있겠냐고 생각할 수도 있겠지만 개발을 하다보면 동적 타입에 의한 문제는 생각보다 많이 튀어나오게 된다. 즉 타입스크립트는 이런 문제를 막아준다. 위.. 2023. 8. 22.
[TS] 타입스크립트에서 Wrapper 객체 타입 피하기 프로젝트를 하던 도중 이런 에러가 떴다. 이 부분에서 문제가 생긴거 같은데 isDeleted의 타입은 Boolean이였기 때문에 문제가 없어 보였다. 하지만 타입스크립트에서는 객체 Wrapper 타입을 지양한다. 객체 Wrapper 타입이란 대문자로 시작하는 타입인데 (Number, String, Boolean, Object 등) 반대는 원시타입이 있다.(number,string,boolean,object 등) 원시타입들은 객체 타입이 아니고 단순 데이터 타입이기 때문에 데이터를 저장한다. 즉 프로토타입이 없고 메서드도 없다. 하지만 자바스크립트에서는 이 원시 타입에 메소드를 사용하고는 하는데 이는 자바스크립트 엔진에서는 형 변환이 이루어지기 때문에 가능하다. 위 사례처럼 메서드를 사용하게 되면 순간적으.. 2023. 5. 16.
반응형