数据库储存密码

数据库储存密码,第1张

一般密码使用hash编码进行存储,当用户注册是要把用户输入的密码转换为

md5

或者

sha1

编码,用户登陆的时候,把用户输入的密码转换在和数据库中存入的数据对比,如果相同就登陆成功。

早些时候是md5后期是sha1都是摘要算法

原密码是无法发到邮箱的

找回密码是产生一个随机新密码的哈希值然后把新密码的哈希值写入数据库,然后把新密码发给用户

用户名一般无需加密

正确的方法就是不存储密码,而是存储对密码进行不可逆加密(如MD5)后的结果。这样别人打开数据库也只能看到加密运算后的结果,无法反推出密码。而需要验证用户密码时,只需要同样进行加密运算然后和数据库里的结果对比是否一致即可。

J ME移动数据库的选择 当然PointBase并不是J ME移动数据库产品的唯一选择 在本文的剩余部分我会比较和讨论几种主流的竞争者 在开始以前先让我来阐述一下这个产品的前景 高端设备上的JDBC数据库 对于运行PersonalJava或Personal Profile的高端设备 数据库能够通过JDBC API被访问 JDBC数据库对于程序来说是最容易的数据库类型 所有的厂商已经至少有一个这种种类的产品 最大的挑战是如何平衡这些功能 我们想要最小而且最快的数据库 它能够支持应用程序所需功能的准确集合 MIDP设备上的轻量级数据 CLDC(有限连接设备配置Connected Limited Device Configuration)/MIDP并不支持JDBC接口 在MIDP设备上支持复杂数据管理的两个通用方法是 执行非常轻量的数据库和RMS上的类似JDBC的访问API 这个方法很耗费资源 但根据开发者开发能力和性能支持证明是最好的 直接扩展RMS类并在扩展的类上执行简单的行序列化 数据访问 索引/搜索和同步方法 这个扩展类是RMS上的一个细小的层次 它能模拟关系表的行为 在产品评论的章节里我将讨论这两种方法 同步服务器 众所周知 同步是移动数据库的一个关键性能 大多数数据库厂商有他们自己专有的同步服务器 这些服务器提供许多附加功能来优化在移动环境下的同步过程 同步服务器的重要性能包括如下几点 智能冲突解决方案带宽减少端到端编密码后台引擎性能调整异步和可扩展更新接下来的几章里我将检查和比较几种主流厂商的产品 HSQL 数据库引擎 开放源码的数据库引擎DHSQL是基于Thomas Mueller的Hypersonic SQL项目 它完全是由Java是编写的同时也是一种广泛用于嵌入式的数据库 它被包含在许多J EE应用服务器中 在移动设备上 HSQL运行在PersonalJava和FP/PP平台上 HSQL是完全免费的 你能自由地将它重新部署到你的应用程序中 这对移动应用程序来说是容易的 HSQL提供一个支持% JDBC接口和所有JDBC数据类型的JDBC驱程 它支持事务 外键甚至Java存储过程 在HSQL中的表能寄存在内存中和保存在磁盘文件中 HSQL只有少于 KB的存储器足迹footprint 它也为PersonalJava设备发布了一个数据库管理控制台(经过Sharp Zaurus上的测试)然而 HSQL缺少一些商业移动数据库上所需的高级性能和安全功能 更重要的是 HSQL不能提供任何同步解决方案 它也缺少一个为MIDP设备的解决方案 PointBase Micro PointBase是一个纯Java嵌入式数据库方面的主流厂商 PointBase Micro数据库能运行在FP/PP/PersonalJava和MIDP平台上 在FP/PP/PersonalJava平台上PointBase Micro 数据库仅用 KB 存储器足迹就能支持大多数JDBC和SQL功能 它也支持例如数据库编密码这样的高级功能 它不支持存储过程和接口CallableStatement 因此MIDP不支持JDBC PointBase为MIDP提供它自己的轻量级类似JDBC的API PointBase Micro 数据库的MIDP版本提供了一个用浏览器打开的MIDlet数据库控制台 PointBase Micro 数据库通过UniSync 同步服务器能容易地同服务器端PointBase嵌入式数据库和Oracle 数据库同步 Sybase iAnywhere 解决方案 在膝上型电脑上的轻量级数据库ianywhere的SQL Anywhere Studio已经拥有巨大的市场份额 在普遍设备上的移动数据库市场它也有一个强大的份额 Anywhere SQL Studio 的自定义数据库生成器是它一个关键创新 它让用户而不是数据库厂商决定如何平衡数据库存储器足迹和它所支持的功能 在Anywhere SQL Studio中用户能指定将在应用程序中调用的SQL状态SQL statement 它根据用户对根本性质和事务功能的选择生成一个自定义数据库 所生成的数据库是一个纯Java类以及伴随的一系列用户应用程序能调用的API 使用iAnywhere MobiLink 同步服务器的数据同步API也能加入到自定义数据库中去 除了自定义数据库生成器 iAnywhere也提供大存储器足迹和移动数据库的一般用途 它包括支持Java储存过程 Java stored procedure在内的许多安全 优化和可用性方面的功能 这些数据库为了达到更好的性能天生就运行在流行的移动平台上 Sybase iAnywhere SQL Studio 现在仍然不能支持MIDP数据库的自动生成 IBM DB Everyplace IBM DB Everyplace是IBM在移动数据库的礼物 对于IBM的客户来说 DB Everyplace非常好地整合了其他IBM企业组件(例如 DB Universal Database 和WebSphere MQ Everyplace)和IBM开发工具(例如 IBM WebSphere Studio Device Developer) DB Everyplace本身运行在包括Palm OS Symbian OS Pocket PC QNX 软件系统和嵌入式Linux在内的许多平台上 DB Everyplace支持加密数据域和表存储优化功能 在MIDP平台上 DB Everyplace有一个叫FastRecordStore的产品 它仿效在MIDP RMS记录存储之上的可索引和可搜索的关系表 DB Everyplace 数据库和FastRecordStore通过IBM同步引擎与后台数据库同步 DB Everyplace也附带一个叫Mobile Application Builder 的工具 它允许开发者可视化地创建DB Everyplace 应用程序 Oracle i Lite Oracle i Lite是Oracle在移动数据库上的产品 它可运行在Plam OS Pocket PC Symbian OS和Win 等平台上 Win 这个版本是为了能运行在膝上电脑上并支持JDBC 多用户模式以及Java存储过程 Oracle i Lite的Pocket PC和Symbian OS版本支持JDBC 而Palm OS版本仅支持Oracle自身专用的OKAPI(对象核心API Object Kernel API)和ODBC(开放数据库连接Open Database Connectivitiy) Oracle i Lite suite包括一个移动开发工具Mobile Development Kit 它能够根据用户自定义需求自动生成和打包移动数据库应用程序 目前它只能生成本身客户端应用程序 Oracle i 移动数据库通过Oracle移动服务器和后台Oracle数据库服务器同步 如果我们使用Oracle i Lite 移动开发工具来创建应用程序则移动服务器会自动为这个应用程序生成同步逻辑 Oracle i Lite支持任何基于TCP/IP的网络上的同步 包括>

需要说明的是,WPS 60架构在WebSphere Application Server 60(WAS 60)的基础之上,因此WPS的安全性方面设置和WAS完全一致。

定制用户注册表需要实现WebSphere Application Server的UserRegistry Java接口,只要实现了这个java接口,定制注册表可以支持任意类型的数据源,比如最常见的关系型数据库,文件系统等等。

用户安全名字(User Security Name):用于验证的用户名字,就如本地 *** 作系统验证方式的用户名。

用户唯一ID(User Unique ID):每个用户对应的唯一ID。

用户显示名字(User Display Name):可选项,用于显示该用户的名字,比如在欢迎界面,相当于本地 *** 作系统验证方式下的该用户的全名。

组安全名字(Group Security Name):用于验证的组的名字,就如本地 *** 作系统的用户。

组唯一ID(Group Unique ID):每个组对应的唯一ID。

组显示名字(Group Display ID):可选项,用于显示该组的名字,比如在欢迎界面,相当于本地 *** 作系统验证方式下的该组的全名。

UserRegistry接口的下列方法必须实现:

initialize:读取WPS中配置的连接信息,对变量进行初始化

checkPassword:此方法用来验证用户名以及密码是否合法,是整合用户数据库的关键

mapCertificate:mapCertificate方法从浏览器中X509安全证书链映射成为用户名

getRealm:返回注册表所在域,比如在OS/400或是AIX上,应该返回系统的主机名,其他情况可以返回默认值"customRealm"。

getUsers:根据输入的用户pattern(样式)查找符合条件的用户列表,如A,则返回所有A开头的用户,开发人员可以根据自己的要求来开发。返回的用户数如果过多,可以使用limit参数进行限制

getUserDisplayName:根据安全用户名(Security User Name),得到显示用户名(Display User Name),一般情况返回同样的名字即可。

getUniqueUserId:根据安全用户名,得到该用户的唯一ID。

getUserSecurityName:根据用户的唯一ID得到用户的安全用户名。

isValidUser:检查用户名是否合法。

getGroups:根据pattern(样式)查找符合条件的组列表,用法同getUsers。

getGroupDisplayName:根据组的安全名字,得到组的显示名字。

getUniqueGroupId:根据组的安全名字,得到组的唯一ID。

getUniqueGroupIds:得到包含某个用户的所有组唯一ID列表。

getGroupSecurityName:根据组的唯一ID得到组的安全名字。

isValidGroup:检查用户组是否合法。

getGroupsForUser:得到包含某个用户的所有组的安全名字列表。

getUsersForGroup :得到某个组的所有用户列表。

createCredential:在底层的WAS实现中,这个方法不会被call到,返回null即可

安装数据库时,因为sa密码的设有规则要求,且不能忽略规则,很多人会选择仅Windows身份验证登录模式,这种情况下,如果要使用sa登录,要修改登录模式,设置sa登录密码并授权登录,具体步骤如下:

使用Windows身份验证登录模式,选中连接源,右键属性》安全性》服务器身份验证选中SQLServer和Windows身份验证模式。

返回数据源,点左边号展开,安全性》登录名》sa,右键属性,常规设置密码,取消勾选强制实施密码策略,状态设置登录启用。

重新连接数据库引擎,身份验证选择Windows身份验证,输入登录名密码即可。

以上就是关于数据库储存密码全部的内容,包括:数据库储存密码、数据库中用户密码通常用什么加密方式、数据库中怎样存储用户密码才能保证安全等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9701770.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存