首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加密回环4中的密码?

如何加密回环4中的密码?
EN

Stack Overflow用户
提问于 2019-01-18 15:09:02
回答 1查看 1.1K关注 0票数 2
代码语言:javascript
复制
import { Member } from '../models';
import { MemberRepository} from '../repositories';
import {inject, Context} from '@loopback/context';

export class MemberController {
constructor(
 @repository(MemberRepository) private memberRepository: MemberRepository,
 @Inject('utilities.PasswordHasher') private passwordHasher: PasswordHasher,
    ) { }
}

得到了这个错误.

src/控制器/成员.控制器.65:27:65-错误TS2304:无法找到名称'PasswordHasher‘。 27 @Inject('utilities.PasswordHasher')私有passwordHasher: PasswordHasher is :27:65-错误TS4063:导出类构造函数的参数'PasswordHasher‘具有或正在使用私有名称'passwordHasher’。 27 @Inject('utilities.PasswordHasher')私有passwordHasher: PasswordHasher

我可以使用哪个模块?.

EN

回答 1

Stack Overflow用户

发布于 2019-01-20 19:27:24

我就是这样做的

代码语言:javascript
复制
import {Entity, model, property} from '@loopback/repository';

const crypto = require('crypto');

@model()
export class User extends Entity{    

  [...]

  @property({
    type: 'string',
    required: false
  })
  private hashedPassword: string;

  @property({
    type: 'string'
  })
  private salt: string;

  set password(password: string){
    if(!this.salt || !this.salt.length){
      this.salt = crypto.randomBytes(32).toString('hex');
    }
    this.hashedPassword = this.encryptPassword(password);
  }

  private encryptPassword(password: string) {
    return crypto.pbkdf2Sync(password, this.salt, 10000, 512, 'sha512').toString('hex');
  };

  public checkPassword(password: string) {
    return this.encryptPassword(password) === this.hashedPassword;
  };
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54256665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档