数据库里加密的密码是怎么实现的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库里加密的密码是怎么实现的相关的知识,希望对你有一定的参考价值。

一般是先加盐再用不可逆加密算法加密密码的,常见的有:sha1 sha256 md5等。

作用:这些加密算法,只能加密,不能逆向解密,所以使用这些算法。即时你的数据库被拖库,得到的人,也无法知道用户密码。

为什么加盐

举例 

在注册时,

假设你的密码是1234,一般服务器会加一个盐(随便一个乱打的字符串),和你的密码加在一起,1234和efnU*(@#H!JKNF得到1234efnU*(@#H!JKNF这个值,然后再进行加密(这里我用md5)得到 91dc02c1fc2ce2252969e6b86173aa78,于是数据库里你的密码就变为了91dc02c1fc2ce2252969e6b86173aa78

登入时,

你输入1234, 然后服务器用和注册相同的步骤进行加密,得到加密后的值,91dc02c1fc2ce2252969e6b86173aa78,将这个值与数据库的加密值比对,如果正确则登入。

参考技术A 比如密码是123,加一个加密函数假如是MD5,加密后的内容是202CB962AC59075B964B07152D234B70,把这个内容存到数据库,以后输入密码登陆和解密的时候,先把输入的内容加用MD5转换成加密后的,再与数据库里的内容比较 参考技术B C#中有数据加密的类using System.Security.Cryptography,在这个类中你可以调用它的两个方法分别是加密方法
public static string Encrypt(string text)

解密方法
public static string Decrypt(string text)

我们一般使用连接数据库加密的话,都会使用一个配置文件在配置文件中对数据库链接进行读写,通过加密方法把链接写到配置文件,然后读取的时候再使用解密方法。
希望可以帮到你,谢谢!
参考技术C 一般密码加密使用 md5,md5_crypt 以及 sha1,推荐使用第二个,因为 md5 和 sha1 密码是固定的,可能会被破解,而 md5_crypt 密码是随机的,几乎不可能破解,linux 系统默认就是使用 md5_crypt 加密密码本回答被提问者采纳 参考技术D 分为两种
1、使用数据库自身的加密字段 来存储需要加密的数据
2、使用程序对需要加密的内容进行加密,然后使用数据库存储加密后的结果

MD5加密在用户注册时和用户登陆时怎么用?还有效验接收的文件时的问题

1、用户在注册时把注册信息发送到服务端,然后服务端进行MD5加密,这个加密具体是
什么样子的?是把每个信息(密码,用户名,地址,手机号等等)分别加密么?那存到
数据库中的信息是加密之后的么?那这个加密的目的是不是为了防止数据库被黑?
2、用户在登录时输入的密码是没有加密的,那么服务端获取之后如何与数据库中加密了
的密码作对比呢?
3、还有看别的技术贴说一个人发送文件给另一个人会附带一个MD5的效验码,但是如果被中间截取了,在发送一个木马程序加新生成的MD5效验码的话,那这个MD5岂不是没有作用?
请指点迷津

第一个问题:数据传输到服务器端,是每个数据分开加密的,加密后的密文保存到数据库,这样做的好处是别人即使得到了数据无法识别,保证了数据的安全,但我们一般加密数据是不用MD5的,因为MD5加密是不可逆的,比如手机号码加密了,那你系统怎么读取呢?再者MD5加密现在并不安全,已经可以破解。所以像这类信息我们一般采用DES对称加密或者RSA非对称加密,这样加密数据是可逆的,而且也比MD5加密要安全,可以去了解一下

第二个问题:如果你的密码是MD5加密的,那么你登录的时候,后台拿到前端得到的密码,就会把这个密码用MD5加密,然后再跟数据库的密文进行比较。如果你用的是可逆的加密,检验密码的方式可能不一样。

第三个问题:每个文件都有唯一的MD5校验码,如果MD5校验码对不上,说明不是这个文件。但像你说的这种情况,文件和MD5校验码都被人截取了,那有可能发生像你所说的,但一般发送文件是连续的数据流,一般情况下是比较难全部截取的,当然还有其他方法去提高安全性,比如加密传输等等
参考技术A

    MD5加密是不可逆转的,就是加密之后不能还原的,但是相同的原文加密会得到相同的密文,其他数据如果只是用来验证而不需要显示的话也可以用MD5加密保存,如果需要显示就要用其他的可逆加密方法,其他的加密方法没有MD5安全

    2.注册时把账号密码加密之后保存到服务器数据库,在登录的时候把输入的账号密码也用MD5加密,把得到的密文与服务器保存的密文对比,一样的就能登录

    附带一个MD5的效验码就是为了防止别人用木马程序替换了,每个原文经过MD5加密之后得到密文几乎不可能相同

以上是关于数据库里加密的密码是怎么实现的的主要内容,如果未能解决你的问题,请参考以下文章

求Java的MD5加密解密实现类。 要实现对用户的密码进行加密! 然后验证用户的密码!

怎么把MD5加密过后的解密为明文密码?

asp后台MD5加密登陆,修改后无法登陆。

Mysql workbench数据库里数据只读不能修改删除添加,怎么弄

数据库如何实现字段加密

Mysql workbench数据库里数据只读不能修改删除添加,怎么弄