MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Lưu trữ mật khẩu với Node.js và MongoDB

Sử dụng cái này:https://github.com/ncb000gt/node.bcrypt.js/

bcrypt là một trong số ít các thuật toán tập trung vào trường hợp sử dụng này. Bạn sẽ không bao giờ có thể giải mã mật khẩu của mình, chỉ xác minh rằng mật khẩu văn bản rõ ràng do người dùng nhập khớp với hàm băm được lưu trữ / mã hóa.

bcrypt rất dễ sử dụng. Đây là một đoạn mã từ lược đồ Người dùng Mongoose của tôi (trong CoffeeScript). Đảm bảo sử dụng các hàm không đồng bộ vì bycrypt chậm (có chủ đích).

class User extends SharedUser
  defaults: _.extend {domainId: null}, SharedUser::defaults

  #Irrelevant bits trimmed...

  password: (cleartext, confirm, callback) ->
    errorInfo = new errors.InvalidData()
    if cleartext != confirm
      errorInfo.message = 'please type the same password twice'
      errorInfo.errors.confirmPassword = 'must match the password'
      return callback errorInfo
    message = min4 cleartext
    if message
      errorInfo.message = message
      errorInfo.errors.password = message
      return callback errorInfo
    self = this
    bcrypt.gen_salt 10, (error, salt)->
      if error
        errorInfo = new errors.InternalError error.message
        return callback errorInfo
      bcrypt.encrypt cleartext, salt, (error, hash)->
        if error
          errorInfo = new errors.InternalError error.message
          return callback errorInfo
        self.attributes.bcryptedPassword = hash
        return callback()

  verifyPassword: (cleartext, callback) ->
    bcrypt.compare cleartext, @attributes.bcryptedPassword, (error, result)->
      if error
        return callback(new errors.InternalError(error.message))
      callback null, result

Ngoài ra, hãy đọc bài viết này, bài viết này sẽ thuyết phục bạn rằng bcrypt là một lựa chọn tốt và giúp bạn tránh trở nên "tốt và thực sự hiệu quả".



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Máy chủ có cảnh báo khởi động '' Kiểm soát truy cập không được bật cho cơ sở dữ liệu ''

  2. Cách tìm độ dài của mảng mongodb

  3. Cập nhật phần tử trong mảng nếu tồn tại khác chèn phần tử mới vào mảng đó trong MongoDb

  4. Làm cách nào để sử dụng một hướng dẫn trong truy vấn shell mongodb

  5. Cách trả về dữ liệu JSON từ php MongoCursor