㈠ 如何在数据库内进行密码加密和解密
作为参考,数据本身提供的字符串加密方法:
------------1.HASHbytes---------------
SELECT sys.fn_sqlvarbasetostr(HASHbytes('MD5','2324243')),sys.fn_VarBinToHexStr(HASHbytes('MD5','2324243'))
------------2. EncryptByPassPhrase 带公钥---------------
--公钥最好保存在其他地方
declare @pwd varbinary(max) ,@password nvarchar(1000) , @EncrptString nvarchar(max)
set @password ='1234567'
set @EncrptString= N'我是中国人'
--加密
SELECT @pwd = EncryptByPassPhrase( @password, @EncrptString)
select @pwd
--解密
SELECT @EncrptString =CAST( DecryptByPassPhrase(@password,@pwd) as nvarchar(max))
select @EncrptString
㈡ 数据库加密问题 进来帮我一下!
1 随机选择一段确定长度明文 t
2 把密码转化为若干个 56bit 的密钥,k1, k2, ... kn
3 用 DES 算法,用上述产生的密钥 k1, k2, ... kn 分别把
明文加密,生成密文 c1, c2, ... cn
4 在数据库中保存 t + c1 + c2 + ... + cn
这样即便有人看到你的数据库,也不知道密码是什么,除非他进行 DES 解算(耗时很长……)。如果还不放心,可以再加上 md5 散列等,叫解密的家伙机器冒烟……
当你需要验证密码时,只需从数据库中读取 t,根据输入的口令重复 2, 3,然后和数据库中保存的 t + c1 + c2 + ... + cn 比较就行了,一致的就是正确的。
㈢ 易客报表怎么把数据库用户密码加密
易客报表的话不是很清楚,我一般都是用finereport来进行权限设置的。在平台内置进行用户身份验证的时候,密码存在数据库(FineReport内置数据库finedb或者其他数据库)中,认证时用户输入的密码与数据库中密码相同则认证通过。在进行手动添加用户的时候,使用密码加密功能,数据库中存的是密文,输入的密码需要进行加密才能和数据库中的密文进行匹配的话,加大破解难度,提高系统安全性。
登录平台, 点击管理系统>用户管理>设置开启同步数据集的时候,设置加密方式,如下图:
java">packagecom.fr.privilege;
importcom.fr.privilege.providers..AbstractPasswordEncode;
{
@Override
publicintlayerIndex(){
returnDEFAULT_LAYER_INDEX;
}
@Override
publicintcurrentAPILevel(){
returnCURRENT_LEVEL;
}
publicStringencodePassword(StringclientPassword){
return(clientPassword+"FR");//即获取用户输入的密码然后在后面加上FR,再与数据库密码匹配。
}
}
㈣ 如何实现数据库连接的密码加密
C#中有数据加密的类using System.Security.Cryptography,在这个类中你可以调用它的两个方法分别是加密方法
public static string Encrypt(string text)
{}
解密方法
public static string Decrypt(string text)
{}
我们一般使用连接数据库加密的话,都会使用一个配置文件在配置文件中对数据库链接进行读写,通过加密方法把链接写到配置文件,然后读取的时候再使用解密方法。
㈤ 用户名和存储密码迷你数据库加密的话应该怎么做
1、定义一个加密处理的class类,通常可以使用MD5来加密,在网络上可以找到此Java源代码
2、在保存用户的密码时,先对获取的密码进行MD5加密后再保存到数据,如:
String passwd=request.getParameter("passwd");
passwd=MD5(passwd);
//通过JDBC写入到数据库
3、在用户登录时,将用户登录输入的密码进行MD5加密后与数据库读取的密码进行比较,若相等若通过登录:
String passwd=request.getParameter("passwd");
.......
if(MD5(passwd).equal(rs.get("passwd")))
//通过登录
㈥ 数据库里加密的密码是怎么实现的
一般是先加盐再用不可逆加密算法加密密码的,常见的有:sha1 sha256 md5等。
作用:这些加密算法,只能加密,不能逆向解密,所以使用这些算法。即时你的数据库被拖库,得到的人,也无法知道用户密码。
为什么加盐
举例
在注册时,
假设你的密码是1234,一般服务器会加一个盐(随便一个乱打的字符串),和你的密码加在一起,1234和efnU*(@#H!JKNF得到1234efnU*(@#H!JKNF这个值,然后再进行加密(这里我用md5)得到 ,于是数据库里你的密码就变为了
登入时,
你输入1234, 然后服务器用和注册相同的步骤进行加密,得到加密后的值,,将这个值与数据库的加密值比对,如果正确则登入。
㈦ 如何对数据库进行加密和解密
数据库账号密码加密详解及实例
数据库中经常有对数据库账号密码的加密,但是碰到一个问题,在使用UserService对密码进行加密的时候,spring security 也是需要进行同步配置的,因为spring security 中验证的加密方式是单独配置的。如下:
<authentication-manager>
<authentication-provider user-service-ref="userDetailService">
<password-encoder ref="passwordEncoder" />
</authentication-provider>
</authentication-manager>
<beans:bean class="com.sapphire.security.MyPasswordEncoder" id="passwordEncoder">
<beans:constructor-arg value="md5"></beans:constructor-arg>
</beans:bean>
如上述配置文件所示,passwordEncoder才是在spring security对账号加密校验的地方。
spring security在拦截之后,会首先对用户进行查找,通过自己定义的userDetailService来找到对应的用户,然后由框架进行密码的匹配验证。
从userDetailService得到user以后,就会进入到DaoAuthenticationProvider中,这是框架中定义的 ,然后跳入其中的authenticate方法中。
该方法会进行两个检查,分别是
* preAuthenticationChecks : 主要进行的是对用户是否过期等信息的校验,调用的方法在userDetail中有定义的。
* : 这个就是用户名密码验证的过程了。
而PasswordEncoder是我们xml中注入的bean,所以了,我们调用的则是我们自己完成的passwordEncoder
public class MyPasswordEncoder extends MessageDigestPasswordEncoder {
public MyPasswordEncoder(String algorithm) {
super(algorithm);
}
@Override
public boolean isPasswordValid(String encPass, String rawPass, Object salt) {
return encPass.equals(DigestUtils.md5DigestAsHex(rawPass.getBytes()));
}
}
这是我对其实现的一个简单版本,调用的就是spring自带的加密算法,很简单了,当然也可以使用复杂的加密方法,这个就靠自己了
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
㈧ 数据库怎么加密
当数据被存储时候被加密,它们被使用的时候就会自动加密。在其他的情况下,你可以选择数据是否要被加密。SQL Server数据库可以加密下列这些组件:密码存储过程,视图,触发器,用户自定义函数,默认值,和规则。
在服务器和用户之间传输的数据密码加密SQL Server自动将你分配给登陆和应用角色的密码加密。尽管当你可以从主数据库中直接察看系统表格而不需要密码。你不能给对这种情况作出任何修改,事实上,你根本不能破坏它。
定义加密在有些时候,如果对对象进行加密是防止将一些信息分享给他人。例如,一个存储进程可能包含所有者的商业信息,但是这个信息不能和让其他的人看到,即使他们公开的系统表格并可以看到对象的定义。这就是为什么SQL Server数据库允许你在创建一个对象的时候进行加密。为了加密一个存储进程,使用下面形式的CREAT PROCEDURE 语句:
CREATEPROCEDUREprocerename[;number]
[@parameterdatatype
[VARYING][=defaultvalue][OUTPUT]]
[,]
[WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]
我们关心的仅仅是可选的WITH参数。你可以详细说明ARECOMPILE或者ENCRYPTION,或者你可以同时说明它们。ENCRYPTION关键字保护SQL Server数据库它不被公开在进程中。结果,如果ENCRYPTION在激活的时候系统存储进程sp_helptext就会被忽视,这个存储进程将被存储在用户创建进程的文本中。
如果你不想要加密,你可以使用ALTER PROCEDURE,忽略WITH ENCRYPTION子句来重新创建一个进程。
为了能够使用加密。用户和服务器都应该使用TCP/IP NetworkLibraries用来连接。运行适当的Network Utility和检查Force protocol encryption,看下表,用户和服务器之间的连接将不会被加密。
加密也不能完全自由。当连接确定后源码天空
,要继续其他的构造,并且用户和服务器必须运行代码来解释加密和解释的包裹。这里将需要一些开销并且当在编译码的时候会使进程慢下来。
是否可以解决您的问题?
㈨ 解析:教你轻松掌握如何对数据库进行加密
作为数据库管理员,您可以对数据库进行加密,使别人更难以破译数据库中的数据。可以使用简单加密或高度加密来保护您的数据库。 注意:压缩加密的数据库将从数据库中解除加密。 简单加密简单加密等效于模糊处理,并可使人使用磁盘实用程序难以查看文件以破译数据库中数据。简单加密并不要求用一个密钥来对数据库进行加密。 SQL Anywhere 的早期版本支持简单加密技术。 高度加密对数据库文件采用高度加密技术后,若没有密钥 (口令),就无法对数据库进行操作。它还对包含在数据库及事务日志中的信息进行加密,这样信息就不会通过使用磁盘实用程序查看文件而很容易地被破译。没有密钥,数据则完全无法访问。 所选用于进行高度加密的算法是 AES:它是数据块加密算法,被美国 "国家标准与技术协会 (NIST)" 选作数据库密码的新的 " 高级加密标准"(AES)。 可以与 CREATE DATABASE 语句一起使用 ENCRYPTION 和 KEY 选项来对数据库进行高度加密。同样,数据库管理员也可以使用 dbinit 实用程序不同的选项结合,对数据库进行初始化,并启用高度加密。您还可以使用 "Sybase Central 创建数据库 " 向导来创建高度加密的数据库。与-ek 或 -ep 选项结合使用 dbinit 实用程序可以实现高度加密,并且指明是在提示框中还是在命令提示符处指定密钥。 创建高度加密的数据库 (SQL)1.从 Interactive SQL 连接到一个现有的数据库。 2.执行包含 ENCRYPTION 和 KEY 选项的 CREATE DATABASE 语句。例如,下面的语句在 C:\ 目录中创建一个名为myencrypteddb.db 的数据库文件。 CREATE DATABASE 'c:\\myencrypteddb' TRANSACTION LOG ON ENCRYPTED ON KEY '0kZ2o52AK#'创建高度加密的数据库 (命令提示符)1.在命令提示符下,使用 dbinit 实用程序创建一个数据库。必须 包括下列选项: �6�1-ea:用于指定加密算法。 �6�1-ek 或 -ep:用于指定加密密钥以及希望在命令提示符处 还是在对话框中输入它。 下列命令 (应在一行中输入所有内容)创建一个高度加密的数 据库并指定输入加密密钥作为命令的一部分。 dbinit -ek "0kZ2o56AK#" "myencrypteddb.db"2.从命令提示符处启动数据库。 dbeng9 myencrypteddb.db -ek "0kZ2o56AK#"与大多数口令一样,最好选择不容易被猜测的密钥值。我们建议您为密钥选择一个包含 8 到 30 位数字的值,且该值是大写和小写字符、数字、字母以及特殊字符的组合。 注意:一定要在安全的位置存储一份密钥。每次启动或修改数据库时,都需要使用该密钥。丢失了密钥将导致数据库完全无法访问,而无法访问的数据库是无法进行恢复的。
㈩ 如何配置数据库密码加密访问数据库
问题解决思路:将配置文件用户相关的信息(例如:密码)进行加密使其以密文形式存在,进行初始化连接池的时候进行解密操作,达到成功创建连接池的目的。Tomcat默认使用DBCP连接池(基于common-pool的一种连接池实现),可在下载commons-dbcp源码包commons-dbcp-1.4-src.zip,对org.apache.commons.dbcp.BasicDataSourceFactory类修改,把数据库密码字段(加密后的密文)用解密程序解密,获得解密后的明文即可。具体实现:1.修改org.apache.commons.dbcp.BasicDataSourceFactory类文件找到数据源密码设置部分value=properties.getProperty(PROP_PASSWORD);if(value!=null){dataSource.setPassword(value);}修改为:value=properties.getProperty(PROP_PASSWORD);if(value!=null){dataSource.setPassword(Encode.decode(value));}将配置文件中的“密码”(加密后的结果)取出,调用加解密类中的解密方法Encode.decode(value)进行解密。2.加密类Encode.java,本例中使用加密解密模块比较简单只是用来说明问题,密文为明文的十六进制串。publicclassEncode{//编码-普通字符串转为十六进制字符串publicstaticStringencode(Stringpassword){Stringresult=“”;byte[]psd=password.getBytes();for(inti=0;ipassword696e65743231urljdbc:oracle:thin:@127.0.0.1:1521:orcldriverClassNameoracle.jdbc.driver.OracleDriverusernamewanfang4.将修改后的BasicDataSourceFactory.java和新添加的Encode.java编译后的class类文件重新打包进commons-dbcp-1.4.jar,将该包拷贝进tomcat下的common/lib目录中,重启tomcat。此时tomcat下部署的应用在连接数据源的时候都可以在不暴露密码明文的情况下进行连接。转载,仅供参考。