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

如题所述

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

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

为什么加盐

举例 

在注册时,

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

登入时,

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-29
比如密码是123,加一个加密函数假如是MD5,加密后的内容是202CB962AC59075B964B07152D234B70,把这个内容存到数据库,以后输入密码登陆和解密的时候,先把输入的内容加用MD5转换成加密后的,再与数据库里的内容比较
第2个回答  推荐于2018-07-13
C#中有数据加密的类using System.Security.Cryptography,在这个类中你可以调用它的两个方法分别是加密方法
public static string Encrypt(string text)
{}
解密方法
public static string Decrypt(string text)
{}
我们一般使用连接数据库加密的话,都会使用一个配置文件在配置文件中对数据库链接进行读写,通过加密方法把链接写到配置文件,然后读取的时候再使用解密方法。
希望可以帮到你,谢谢!本回答被网友采纳
第3个回答  2017-03-12
一般密码加密使用 md5,md5_crypt 以及 sha1,推荐使用第二个,因为 md5 和 sha1 密码是固定的,可能会被破解,而 md5_crypt 密码是随机的,几乎不可能破解,linux 系统默认就是使用 md5_crypt 加密密码本回答被提问者采纳
第4个回答  2018-07-17
分为两种
1、使用数据库自身的加密字段 来存储需要加密的数据
2、使用程序对需要加密的内容进行加密,然后使用数据库存储加密后的结果
相似回答