精华内容
下载资源
问答
  • mysql加密

    2014-06-17 13:21:18
    mysql加密方法:password(""); select password('Aa123456') -> 得到

    mysql加密方法:password("");

    select password('Aa123456') -> 得到加密密码

    展开全文
  • phpmyadmin MySQL 加密配置方法
  • 主要介绍了MySQL加密和解密实例详解的相关资料,需要的朋友可以参考下
  • mysql加密函数

    千次阅读 2019-04-19 15:40:09
    MySQL加密和解密函数个人分为两类: 1.只支持正向加密不支持反向解密的函数: MD5()、SHA1()|SHA()、SHA2() 针对此类加密的算法MySQL不提供解密, 但是我们可以通过网站 http://www.cmd5.com/ 反向解密。 改网站...

    MySQL的加密和解密函数个人分为两类:
    1.只支持正向加密不支持反向解密的函数:
    MD5()、SHA1()|SHA()、SHA2()
    针对此类加密的算法MySQL不提供解密,

    但是我们可以通过网站
    http://www.cmd5.com/ 反向解密。
    改网站支持MD5、SHA、SHA256、SHA512等解密。


    2.支持加密和解密的函数:
    COMPRESS(),UNCOMPRESS():普通的加密和解密算法。
    ENCODE(),DECODE():普通的加密和解密算法
    DES_ENCRYPT(),DES_DECRYPT():支持DES算法的加密和解密。
    AES_DECRYPT(),AES_ENCRYPT():支持AES算法的加密和解密。
    ASYMMETRIC_ENCRYPT(),ASYMMETRIC_DECRYPT():签名加密和解密。
    STATEMENT_DIGEST(),STATEMENT_DIGEST_TEXT():针对语句进行hash算法和反向解析。
    3.第三类:
    3.1
    ASYMMETRIC_DERIVE()
    ASYMMETRIC_SIGN()
    ASYMMETRIC_VERIFY()
    CREATE_ASYMMETRIC_PRIV_KEY() 创建私钥
    CREATE_ASYMMETRIC_PUB_KEY()  创建公钥
    3.2
    CREATE_DH_PARAMETERS() 生成DH秘钥
    CREATE_DIGEST()        字符串digest
    PASSWORD()           返回加密的密码,此函数在MySQL8.0被移除。
    RANDOM_BYTES()       生成随机向量值。
    UNCOMPRESSED_LENGTH()  返回加密前的字符串长度。
    VALIDATE_PASSWORD_STRENGTH() 密码强度的验证值。
    上述加密算法中的 MD5(), SHA(), SHA1(), SHA2(),STATEMENT_DIGEST(), STATEMENT_DIGEST_TEXT().
    返回的是ASCII字符,字符由参数character_set_connection和collation_connection决定。当设置为binary时则不受影响。
    mysql> show variables like '%connection';
    +---------------------------+--------------------+
    | Variable_name             | Value              |
    +---------------------------+--------------------+
    | character_set_connection  | utf8mb4            |
    | collation_connection      | utf8mb4_unicode_ci |
    | default_master_connection |                    |
    +---------------------------+--------------------+
    3 rows in set (0.001 sec)
    示例:
    1.MD5加密
    mysql> select md5('123456') MD5;
    +----------------------------------+
    | MD5                              |
    +----------------------------------+
    | e10adc3949ba59abbe56e057f20f883e |
    +----------------------------------+
    1 row in set (0.00 sec)
    MD5返回的字符串是32bit的,若要存储的话可以使用char(32).
    若要将这类信息转换为16进制的复杂格式,可以使用UNHEX()函数和binary(16)存储。
    mysql> create table wuhan.t_md5 as select unhex(md5('123456')) hex_md5;
    Query OK, 1 row affected (0.00 sec)
    Records: 1  Duplicates: 0  Warnings: 0
    mysql> select * from wuhan.t_md5;
    +------------------+
    | hex_md5          |
    +------------------+
    | 9IV       |
    +------------------+
    1 row in set (0.00 sec)
    mysql> desc wuhan.t_md5;
    +---------+---------------+------+-----+---------+-------+
    | Field   | Type          | Null | Key | Default | Extra |
    +---------+---------------+------+-----+---------+-------+
    | hex_md5 | varbinary(64) | YES  |     | NULL    |       |
    +---------+---------------+------+-----+---------+-------+
    1 row in set (0.00 sec)
    2.SHA 加密:SHA等同于SHA1,SHA加密算法比MD5更加安全。
    mysql> select sha('123456');
    +------------------------------------------+
    | sha('123456')                            |
    +------------------------------------------+
    | 7c4a8d09ca3762af61e59520943dc26494f8941b |
    +------------------------------------------+
    3.SHA2加密:
    SHA2(str, hash_length)
    hash_length支持的值224, 256, 384, 512, or 0。0等同于256.
    mysql> select sha2('123456',0) A,sha2('123456',256) B\G   
    *************************** 1. row ***************************
    A: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
    B: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
    1 row in set (0.01 sec)
    预计国内很多中小创业公司,和一些IT公司可能使用的加密算法就是上面的几种。
    本人在网上收集到的一些密码,可以看到大部分的国人使用的密码都很简单,很容易猜测和密码碰撞到的。
    Password_encrypt                  peoples  plain_text  
    --------------------------------  -------  ------------
    e10adc3949ba59abbe56e057f20f883e     1735  123456      
    c33367701511b4f6020ec61ded352059       67  654321      
    21218cca77804d2ba1922c33e0151105       54  888888      
    670b14728ad9902aecba32e22fa4f6bd       49  000000      
    96e79218965eb72c92a549dd5a330112       30  111111      
    f379eaf3c831b04de153469d1bec345e       22  666666      
    25d55ad283aa400af464c76d713c07ad       20  12345678    
    25f9e794323b453885f5181f1b624d0b       19  123456789   
    e35cf7b66449df565f93c607d5a81d09       16  456789      
    fcea920f7412b5da7be0cf42b8c93759       14  1234567
    排名前十的密码,占比密码取样的25%。

     

     

     

    AES_ENCRYPT(str,key)  返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,以BLOB类型存储
    AES_DECRYPT(str,key)  返回用密钥key对字符串str利用高级加密标准算法解密后的结果
    DECODE(str,key)   使用key作为密钥解密加密字符串str
    ENCRYPT(str,salt)   使用UNIXcrypt()函数,用关键词salt(一个可以惟一确定口令的字符串,就像钥匙一样)加密字符串str
    ENCODE(str,key)   使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串,它以BLOB类型存储
    MD5()    计算字符串str的MD5校验和
    PASSWORD(str)   返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法。
    SHA()    计算字符串str的安全散列算法(SHA)校验和
    示例:
    SELECT ENCRYPT('root','salt');
    SELECT ENCODE('xufeng','key');
    SELECT DECODE(ENCODE('xufeng','key'),'key');#加解密放在一起
    SELECT AES_ENCRYPT('root','key');
    SELECT AES_DECRYPT(AES_ENCRYPT('root','key'),'key');
    SELECT MD5('123456');
    SELECT SHA('123456');

    展开全文
  • MySQL 加密/压缩函数

    2020-09-11 07:17:07
    MySQL中,加密和压缩函数返回二进制串。对其中的许多函数而言,结果可能包含任意的字节值,如果想存储这些结果,你应该使用一个具有varbinary或者blob二进制串数据类型的列,这可避免潜在的删除尾部空白问题或者...
  • Mysql加密连接

    千次阅读 2018-11-25 15:55:41
    通过MySQL客户端和服务器之间的未加密连接,有权访问网络的人可以监视您的所有流量并检查客户端和服务器之间发送或接收的数据。 当您必须以安全的方式通过网络移动信息时,未加密的连接是不可接受的。要使任何类型的...

    使用加密连接:
    https://dev.mysql.com/doc/refman/8.0/en/encrypted-connections.html

    通过MySQL客户端和服务器之间的未加密连接,有权访问网络的人可以监视您的所有流量并检查客户端和服务器之间发送或接收的数据。
    当您必须以安全的方式通过网络移动信息时,未加密的连接是不可接受的。要使任何类型的数据不可读,请使用加密。加密算法必须包含安全元素,以抵御多种已知攻击,例如更改加密消息的顺序或重放数据两次。
    MySQL支持使用TLS(传输层安全性)协议在客户端和服务器之间建立加密连接。TLS有时被称为SSL(安全套接字层),但MySQL实际上并不使用SSL协议进行加密连接,因为它的加密很弱(请参见 第6.4.6节“加密连接协议和密码”)。
    TLS使用加密算法来确保可以信任通过公共网络接收的数据。它具有检测数据更改,丢失或重放的机制。TLS还包含使用X.509标准提供身份验证的算法。
    X.509可以识别互联网上的某个人。在基本术语中,应该有一些称为“ 证书颁发机构 ”(或CA)的实体,它将电子证书分配给需要它们的任何人。证书依赖于具有两个加密密钥(公钥和密钥)的非对称加密算法。证书所有者可以将证书提供给另一方作为身份证明。证书由其所有者的公钥组成。使用该公钥加密的任何数据只能使用由证书所有者持有的相应密钥解密。
    如果您有MySQL源代码分发,则可以使用其mysql-test/std_data目录中的演示证书和密钥文件来测试您的设置
    使用加密连接的选项,证书和秘钥文件的名称以及加密连接技术支持相关的参数

    ssl加密库:
    openssh:MySQL支持使用TLSv1,TLSv1.1和TLSv1.2协议的加密连接。
    wolfssh
    要确定是否使用OpenSSL编译服务器,请测试是否存在任何这些变量。例如,如果使用OpenSSL,则此语句返回一行;如果使用wolfSSL,则返回空结果:

    mysql> SHOW STATUS LIKE 'Rsa_public_key'\G
    

    检查是否启用加密:

    mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher';
    mysql> \s
    

    查看服务器是否支持ssh连接:

    mysql>SHOW VARIABLES LIKE 'have_ssl';
    

    配置myql服务器连接:

    有几个选项可用于指示是否使用加密连接,以及指定适当的证书和密钥文件
    服务器端连接:
    服务器端的这些选项标识服务器在允许客户端建立加密连接时使用的证书和密钥文件:
    --ssl-ca:证书颁发机构(CA)证书文件的路径名。(--ssl-capath类似但指定CA证书文件目录的路径名。)
    --ssl-cert:服务器公钥证书文件的路径名。这可以发送到客户端,并根据它具有的CA证书进行身份验证。
    --ssl-key:服务器私钥文件的路径名。
    
    [mysqld]
    ssl-ca=ca.pem
    ssl-cert=server-cert.pem
    ssl-key=server-key.pem
    

    加密连接的客户端配置

    默认情况下,如果服务器支持加密连接,MySQL客户端程序会尝试建立加密连接,并通过以下--ssl-mode选项进一步控制 :
    如果没有 --ssl-mode选项,客户端将尝试使用加密进行连接,如果无法建立加密连接,则会回退到未加密的连接。这也是具有显式--ssl-mode=PREFFERED选项的行为 。
    使用时--ssl-mode=REQUIRED,客户端需要加密连接,如果无法建立,则会失败。
    使用--ssl-mode=DISABLED,客户端使用未加密的连接。
    使用--ssl-mode=VERIFY_CA或 --ssl-mode=VERIFY_IDENTITY,客户端需要加密连接,并对服务器CA证书和(与VERIFY_IDENTITY)证书 中的服务器主机名执行验证。
    mysql --ssl-ca=ca.pem \
      --ssl-cert=client-cert.pem \
      --ssl-key=client-key.pem
    

    使用openssh生成加密证书:

    生成证书代码:

    # Create clean environment
    rm -rf newcerts
    mkdir newcerts && cd newcerts
    
    # Create CA certificate
    openssl genrsa 2048 > ca-key.pem
    openssl req -new -x509 -nodes -days 3600 \
            -key ca-key.pem -out ca.pem
    
    # Create server certificate, remove passphrase, and sign it
    # server-cert.pem = public key, server-key.pem = private key
    openssl req -newkey rsa:2048 -days 3600 \
            -nodes -keyout server-key.pem -out server-req.pem
    openssl rsa -in server-key.pem -out server-key.pem
    openssl x509 -req -in server-req.pem -days 3600 \
            -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
    
    # Create client certificate, remove passphrase, and sign it
    # client-cert.pem = public key, client-key.pem = private key
    openssl req -newkey rsa:2048 -days 3600 \
            -nodes -keyout client-key.pem -out client-req.pem
    openssl rsa -in client-key.pem -out client-key.pem
    openssl x509 -req -in client-req.pem -days 3600 \
            -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
    

    生成的文件目录:

    ➜  newcerts tree -L 2
    .
    ├── ca-key.pem:CA证书
    ├── ca.pem
    ├── client-cert.pem:客户端连接的证书
    ├── client-key.pem
    ├── client-req.pem
    ├── server-cert.pem:服务器端的证书
    ├── server-key.pem
    └── server-req.pem
    
    0 directories, 8 files
    

    验证证书:

    要查看SSL证书的内容(例如,要检查其有效的日期范围),请直接调用 openssl:

    openssl x509 -text -in ca.pem
    openssl x509 -text -in server-cert.pem
    openssl x509 -text -in client-cert.pem
    

    也可以使用以下SQL语句检查SSL证书过期信息:

    mysql> SHOW STATUS LIKE 'Ssl_server_not%';
    openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
    

    查看证书内容:

    openssl x509 -text -in ca.pem
    openssl x509 -text -in server-cert.pem
    openssl x509 -text -in client-cert.pem
    

    创建RSAkey:

    openssl genrsa -out private_key.pem 2048
    openssl rsa -in private_key.pem -pubout -out public_key.pem
    chmod 400 private_key.pem
    chmod 444 public_key.pem
    

    配置:
    在启动服务器时用有关选项指明证书文件和密钥文件的位置。在建立加密连接前,要准备三个文件,一个CA证书,是由可信赖第三方出具的证书,用来验证客户端和服务器端提供的证书。CA证书可向商业机构购买,也可自行生成。第二个文件是证书文件,用于在连接时向对方证明自已身份的文件。第三个文件是密钥文件,用来对在加密连接上传输数据的加密和解密。MySQL服务器端的证书文件和密钥文件必须首先安装,在sampdb发行版本的ssl目录里有几个供参考的样本文件:ca-cert.pem(CA证书),server-cert.pem(服务器证书),server-key.pem(服务器公共密钥)。把这几个文件拷贝到服务器的数据目录中,再在选项文件里加上以下内容:

    [mysqld]
    ssl-ca=/usr/local/mysql/data/ca-cert.pem
    ssl-cert=/usr/local/mysql/data/server-cert.pem
    ssl-key=/usr/local/mysql/data/server-key.pem
    

    要想让某个客户程序建立加密连接,必须在调用这个客户程序时用有关选项告诉它在哪里能找到其证书文件和密钥文件。在sampdb发行版的ssl目录中提供了client-cert.pem(客户证书文件),client-key.pem(客户密钥文件),CA证书与服务器使用同样的ca-cert.pem。把他们拷贝到个人目录下,并在.my.cnf选项文件中指出文件位置,如:

    [mysql]
    ssl-ca=/home/mysql/ca-cert.pem
    ssl-cert=/home/mysql/client-cert.pem
    ssl-key=/home/mysql/client-key.pem
    

    配置完成后,调用mysql程序运行\s或SHOW STATUS LIKE 'SSL%'命令,如果看到SSL:的信息行就说明是加密连接了。如果把SSL相关的配置写进选项文件,则默认是加密连接的。也可用mysql程序的–skip-ssl选项取消加密连接。如果用命令行方式启用加密连接可以这样写:

     mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
    

    可用GRANT语句的REQUIRE SSL选项来强制用户使用加密连接。

    使用sampdb发行版的证书可以建立一个加密连接,但由于该文件已公开,所以安全性不好,我们可以在测试成功后自行建立证书或购买商业证书,以提高安全性。如何自行建立SSL证书的文档在sampdb发行版的ssl/README文件里有说明

    展开全文
  • MySQL加密和解密

    万次阅读 2012-07-12 09:53:31
    MySQL数据库加密与解密:   数据加密、解密在安全领域非常重要。对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大。 有多种前端加密算法可用于数据加密、解密,下面我向您推荐一种...

    MySQL数据库加密与解密:

     

    数据加密、解密在安全领域非常重要。对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大。

    有多种前端加密算法可用于数据加密、解密,下面我向您推荐一种简单的数据库级别的数据加密、解密解决方案。以MySQL数据库为例,它内建了相应的加密函数(AES_ENCRYPT() )和解密函数(AES_DECRYPT())。

    在建表的时候,要注意字段的类型.如下图所示:

     

    在表中插入加密数据

     

    上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它(请牢记!)。

    下面是表中的数据截图:

     

    上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它(请牢记!)。

    下面是表中的数据截图:

     

    从表中查询加密数据

     

    上面的查询语句使用了AES_DECRYPT()函数。下面是运行结果:

    在上面的截图中,我们可以看到“pasword”和“decryptedpassword”字段的值是相同的,也就是说,你解密了用户密码.

     

    转载请注明出处: http://blog.csdn.net/johnny901114/article/details/7739008

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • MySQL 加密解密函数

    千次阅读 2019-11-05 11:36:01
    MySQL加密和解密函数个人分为两类: 1.只支持正向加密不支持反向解密的函数: MD5()、SHA1()|SHA()、SHA2() 针对此类加密的算法MySQL不提供解密,但是我们可以通过网站 http://www.cmd5.com/ 反向解密。 改网站...
  • 幸运的是,MySQL带有很多设计用来提供这种类型安全的加密函数。本文概述了其中的一些函数,并说明了如何使用它们,以及它们能够提供的不同级别的安全。 双向加密 就让我们从最简单的加密开始:双向加密。在这里,一...
  • mysql加密函数password

    千次阅读 2019-11-12 13:52:33
    1.mysql5.7 SELECT PASSWORD('123456') UPDATE user SET authentication_string=PASSWORD('123456') WHERE user='root' 2.mysql8.0.11 移除了password()方法 ...
  • 由于mysql的主从复制是明文传送的,但如果在生产环境中跨网络我们使用的主从还是明文传送的话,就保证不了数据的安全性,为了解决这一问题,我们需要加密进行传送,也就是基于SSL的加密方法进行传输数据 实验环境:...
  • MySQL加密算法

    2017-03-27 14:53:00
    1.不可逆加密: PASSWORD(),ENCRYPT(,),MD5(),SHA5()。 2.可逆的加密算法: ENCODE(,) DECODE(,):加密解密字符串。该函数有两个参数:被加密或解密的字符串和作为加密或解密基础的密钥。Encode结果是一个二...
  • MySQL 加密解密 详解

    千次阅读 2018-02-09 09:14:01
    MySQL 数据库内部有多种 加密函数 解密函数被加密的字段的类型需要是 VARBINARY、BLOB 类型 存储AES_ENCRYPT(str,key) : 返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二...
  • 获取MySQL加密密码并验证用户输入(登录界面),retrieve hashpwd from mysql and compare with input password on login
  • Mysql加密解密

    2014-12-08 18:01:29
    MySQL提供了4个函数用于哈希加密:PASSWORD, ENCRYPT, SHA1和MD5。 password(),sha1,md5加密都是不可逆的,一般我们使用sha1或者md5对数据库敏感信息进行简单的加密处理,因为都是不可逆的,所以一般应用都是先加密...
  • Mysql加密身份证号

    2020-04-17 15:59:44
    update test set id_no=replace(id_no,substring(id_no,9,14), concat(‘000000’,substring(id_no,15,18)) );
  • mysql加密解密函数

    万次阅读 2011-09-15 12:35:32
    mysql下的加密函数有如下几个 PASSWORD():创建一个经过加密的密码字符串,适合于插入到MySQL的安全系 统。该加密过程不可逆,和unix密码加密过程使用不同的算法。主要用于MySQL的认证系统。   ENCRYPT(,):...
  • 平常会经常遇到的问题:Client does not support authentication protocol requested by server;...为了提供更安全的密码加密MySQL8.0的首选默认认证插件是caching_sha2_password, 而不是mysql_native...
  • MySQL加密/压缩函数

    千次阅读 2009-12-18 19:21:00
    MySQL中,加密和压缩函数返回二进制串。对其中的许多函数而言,结果可能包含任意的字节值,如果想存储这些结果,你应该使用一个具有varbinary或者blob二进制串数据类型的列,这可避免潜在的删除尾部空白问题或者...
  • mysql下的加密函数有如下几个 PASSWORD():创建一个经过加密的密码字符串,适合于插入到MySQL的安全系 统。该加密过程不可逆,和unix密码加密过程使用不同的算法。主要用于MySQL的认证系统。 ENCRYPT(,)...
  • Mysql加密函数SHA和MD5函数简介

    千次阅读 2018-09-06 21:37:50
    SHA:不可逆   MD5:不可逆  
  • MYSQL在WEB开发的时候,对用户密码进行加密和解密 主要函数为ENCODE()和DECODE() 比前二个更强大高效的AES_ENCRYPT()和AES_DECRYPT() ...MySQL有两个函数来支持这种类型的加密,分别叫做ENCODE()和DECODE
  • mysql 加密解密 AES_ENCRYPT AES_DECRYPT

    千次阅读 2017-05-03 09:44:43
    加密 INSERT INTO pmdb.`mm_Sql_service` (strArea,strProject,strCanal,ip,sql_type,sql_name,USER,system_account ,system_word,sql_account,sql_word,strRemark) VALUES ('33333','1231231','渠道1','123','123...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,556
精华内容 45,822
关键字:

mysql加密

mysql 订阅