我正在为我的Web应用程序构建一个注册系统,其中用户提供用户名和密码 . 此数据存储在 postgresql 数据库中 . 我正在使用bcrypt生成用户输入密码的盐渍哈希,如下所示

import bcrypt

hashed = bcrypt.hashpw(PasswordFromWebForm.encode('UTF-8'), bcrypt.gensalt())

这会创建一个看起来像这样的盐渍密码 - b'$2b$12$GskbcRCMFHGuXumrNt3FLO'

我将此值存储在 postgresql 数据库中 . 接下来,当用户尝试登录系统时,我想验证他/她的凭据 . 要做到这一点,我打算做一些事情 -

import psycopg2

conn = psycopg2.connect("dbname=test user=me")

cur = conn.cursor()

saltedpassword = cur.execute("SELECT saltedpassword FROM test WHERE loginid = %s", (LoginIDFromWebForm,))

if bcrypt.hashpw(PasswordFromWebForm.encode('UTF-8'), saltedpassword) == saltedpassword:

print("Success")

这不起作用 . 它抛出以下 TypeError: Unicode-objects must be encoded before hashing 错误 .

我怀疑这个错误是因为变量 saltedpassword 将值存储为像 "b'$2b$12$GskbcRCMFHGuXumrNt3FLO'" 这样的字符串,而不仅仅是普通的 b'$2b$12$GskbcRCMFHGuXumrNt3FLO' (请注意括号中包含salted密码的引号)

我该如何解决这个问题?在数据库中存储盐渍哈希密码的最佳方法是什么?如何在需要验证时检索它?对这个相当长的问题道歉 - 请帮忙 .

java检索账号和密码_如何从数据库中检索密码相关推荐

  1. heidisql修改mysql密码_读取HeidiSQL 配置文件中的密码

    读取HeidiSQL 配置文件中的密码 2017-1-21 5:42:01 codegay HeidiSQL是一款开源的SQL管理工具,用管理MYSQL,MSSQL 等数据库, 很多管理工具都会把密码 ...

  2. python如何隐藏密码_在python脚本中隐藏密码(仅限不安全的混淆)

    Base64编码是在标准库中,并将停止肩膀冲浪者: >>> import base64 >>> print base64.b64encode("passw ...

  3. zabbix mysql密码_重置Zabbix数据库Admin的密码

    比对未修改之前: [root@zabbix-server ~]# mysql -uroot -p -e "select * from zabbix.users\G" Enter p ...

  4. java oracle 建表语句_在oracle数据库中创建表语句如何写?

    表名:servicelogs 字段名称类型 idint (主键,自增) servicetypevarchar (100) outsysvarchar (100) methodnamevarchar ( ...

  5. 加密数据的检索_透明地持久保存并从数据库中检索加密的数据

    加密数据的检索 自从我在这里发表上一个帖子以来已经有两个多月了,但是今年六月和七月非常忙碌而密集. 首先, Confitura的组织(欧洲最大的Java开发人员免费会议)参加了我所有的免费晚会,然后在 ...

  6. numpy序列预处理dna序列_【陪你学生信】七、在数据库中检索相似的序列

    一.相似度Similarity 序列的分析离不开相似度这个指标,相似度比较高的序列往往具有相似的结构.执行相似的功能.所以用未知序列blast得到的结果可以对未知序列进行推测. 当两个序列非常相似时, ...

  7. 透明地持久保存并从数据库中检索加密的数据

    自从我在这里发表上一个帖子以来已经有两个多月了,但是今年六月和七月非常忙碌而密集. 首先, Confitura的组织(欧洲最大的Java开发人员免费会议)参加了我所有的免费晚会,然后在相当紧张的住院期 ...

  8. android 图片存储读取数据库中,如何在android中存储(位图图像​​)并从sqlite数据库中检索图像?...

    设置数据库public class DatabaseHelper extends SQLiteOpenHelper { // Database Version private static final ...

  9. 实战演练 | 数据库中检索奇数或偶数行的简单方法

    从表中仅选择奇数行或偶数行听起来像是你永远不必做的事情,除非你自行这样做.在谷歌快速搜索一下,可以证实这事情是经常有人会做的,但是,很少有数据库从业者知道如何做,他们总是在线数据库社区求助寻找答案.作 ...

  10. 忘记oracle管理员密码了,解决oracle数据库忘记系统管理员密码

    解决oracle数据库忘记系统管理员密码 下面我分两步讲解这个问题,1)Oracle数据库的三种认证机制:2)oracle数据库忘记系统管理员密码怎么办? 1.Oracle数据库的三种认证机制 a)操 ...

最新文章

  1. 听说你要离开大厂去创业公司做CTO?
  2. 大白菜软件常用功能介绍
  3. Redis 启动与授权
  4. C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么?
  5. iPhone7p与iPhoneX布局出现右边白边问题
  6. ITK:可视化静态稀疏Shi 2D水平设置图层
  7. ovirt官方安装文档 第三章
  8. .NET 深度指南:Colors
  9. msu文件无法运行_安装程序遇到报错?无法验证发布者?无法使用脚本直接调用?...
  10. 将米转换为度(经纬度) 画圆上下多出来一些区域
  11. matlab 实现排序
  12. uni-app小程序实现图片上传和压缩
  13. 极品-React中的DOM虚拟DOM,与deff算法,router
  14. 大学计算机excel高级筛选,excel高级筛选的使用方法(入门 进阶 高级)
  15. php 排序指定key,php实现数组按指定KEY排序的方法
  16. 微信开发-错误码大全
  17. 服务器登陆之后一直转无法显示桌面,如何解决远程登录Windows服务器无法显示桌面的问题?...
  18. 2.002 tensorflow做矩阵乘法
  19. 图像的几种变换简单介绍
  20. linux的pstee命令安装与卸载

热门文章

  1. MySQL8.0.22解压安装教程
  2. python内置函数type_Python基于内置函数type创建新类型
  3. oracle的用户和mysql的用户_oracle数据库的用户以及表空间
  4. python玩转单片机_Python玩转单片机:从基础到进阶,几款主流的开发板大盘点!...
  5. android mat分析,android内存泄露MAT分析心得与注意点
  6. SpringMVC的Restful风格
  7. java获取手机屏幕大小_获取手机屏幕大小
  8. 【leetcode 简单】 第六十六题 用栈实现队列
  9. 第二章.JSP/Servlet及相关技术详解
  10. JQuery事件方法