Hashing
5878 ワード
ハシンって何?👀
暗号化は可能ですが、復号化はできません.一方向暗号化と呼ばれます.
会員加入時に入力したパスワードをDBに保存する際にたくさん使います!
パスワードを検索するときに一方向暗号化を使用する場合は、新しいパスワードを作成できます.双方向暗号化を使用する場合は、パスワードを変更できます(前の場合より安全です).
brcypt
という名前のライブラリを使用してハッシュimport { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
import { CreateUserInput } from './dto/createUser.input';
import { User } from './entities/users.entity';
import { UserService } from './user.service';
import * as bcrypt from 'bcrypt';
@Resolver()
export class UserResolver {
constructor(
private readonly userService: UserService,
) {}
//회원 생성(회원가입)
@Mutation(() => User)
async createUser(
@Args('userInput') userInput: CreateUserInput,
) {
const hashedPassword = await bcrypt.hash(userInput.password, 10);// bcrypt를 이용해 hashing
userInput.password = hashedPassword;
return this.userService.create({ userInput });
}
// db저장 형태 예시) 비밀번호: 1234 (hashing)=> $2b$10$t0HaFZK2CXamx7gvEj/y5OQ8F0hn6C4LynVyssr4j6WIW1tlm/Xoy
// 로그인 시 암호화된 비밀번호와 비교 방법
// bcrypt의 compare기능 이용
const isAuth = await bcrypt.compare(password, user.password);
if (!isAuth) throw new UnprocessableEntityException('비밀번호 불일치!!');
勉強して書いているブログ.間違った内容があるかもしれませんが、もしあれば、メッセージを残してください.ありがとうございます.
😊
Reference
この問題について(Hashing), 我々は、より多くの情報をここで見つけました https://velog.io/@yjin/Hashingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol