一般是先加盐再用不可逆加密算法加密密码的,常见的有:sha1sha256md5等。
作用:这些加密算法,只能加密,不能逆向解密,所以使用这些算法。 即时你的数据库库,得到的,也无法知道用户密码。
为什么加盐
举例
在注册时,
假设你的密码是1234,一般服务器会加一个盐(随便一个乱的字符串),和你的密码加在一起,1234和efnU*(@#H!JKNF得到1234efnU*(@#H!JKNF这个值,然后再进行加密(这里我用md5)得到91dc02c1fc2ce2252969e6b86173aa78,于是数据库里你的密码就变为了91dc02c1fc2ce2252969e6b86173aa78
登入时,
你输入1234,然后服务器用和注册相同的步骤进行加密,得到加密后的值,91dc02c1fc2ce2252969e6b86173aa78,将这个值与数据库的加密值比对,如果正确则登入。
数据库加密方式主要包括以下几种:
1.数据本身加密
对数据库中的敏感数据进行直接加密处理,通过加密算法将数据进行转换,使得未经授权的用户无法直接读取数据。 这种方式能够保护数据的隐私和安全。 常用的加密算法包括对称加密算法(如AES)和非对称加密算法(如RSA)。
2.数据库字段级加密
在这种加密方式下,数据库中的特定字段(如密码、个信息等敏感字段)会单独加密。 这种方式能够更灵活地控哪些数据需要保护,并且可以支对特定字段的细粒度访问控。 通常使用的技术包括字段级别的透明数据加密(例如Oracle的透明数据加密)。
3.数据库连接加密
除了数据本身的加密,数据库连接的加密也非常重要。 数据库连接加密主要是确保客户端与数据库服务器之间的通信安全。 这通常通过SSL/TLS协议实现,它能够确保数据传输过程中的保密性和完整性。 当客户端与数据库建立连接时,双方会进行SSL握手,协商加密方式和密钥,确保通信的安全。
4.磁盘加密技术
对于整个数据库文件的加密,磁盘加密技术是一个选择。 该技术能够对存储在磁盘上的数据库文件进行加密,从而防止未经授权的用户访问文件。 这种方式提供了一个整体的保护层,但可能牺牲一些性能。 常见的磁盘加密技术包括BitLocker和全磁盘加密等。