MySQL ENCODE中使用什么类型的加密?

时间:2018-04-01 17:31:29

标签: mysql decode encode crypt

的MySQL

nav {
    position:fixed;
    top:3.2em;
    right:0;
    width:250px;
    height:80%;
    margin:0 -250px 0 0;

    -moz-transition:all 300ms cubic-bezier(0.77,0.2,0.05,1.0);
    -webkit-transition:all 300ms cubic-bezier(0.77,0.2,0.05,1.0);
    -o-transition:all 300ms cubic-bezier(0.77,0.2,0.05,1.0);
    transition:all 300ms cubic-bezier(0.77,0.2,0.05,1.0);

}

navclick {
    position:fixed;
    top:3.2em;
    right:0;
    width:250px;
    height:80%;
    margin:0 0 0 0;

    -moz-transition:all 300ms cubic-bezier(0.77,0.2,0.05,1.0);
    -webkit-transition:all 300ms cubic-bezier(0.77,0.2,0.05,1.0);
    -o-transition:all 300ms cubic-bezier(0.77,0.2,0.05,1.0);
    transition:all 300ms cubic-bezier(0.77,0.2,0.05,1.0);
}

nav ul {
    width:250px;
    height:100vh;
    padding:0;
    margin:0;
    list-style:none;
    background:rgba(0,0,0,0.8);
    overflow:hidden;
}

nav li {
    margin:0;     
}

nav a {
    color:#fff !important;
    font-size:1em;
    font-family:'helvetica neue', helvetica, arial, sans-serif;
    text-decoration:none;
    display:block;
    padding:12px 15px;
    font-weight:300;
    letter-spacing:2px;
    /*border-bottom:1px solid #333;            */
    cursor:pointer !important;
}

nav a:hover {
    color: #B8E5FF !important;
    background:rgba(0,0,0,0.9) !important; 
}

.minimenu {width:200px;} 

.minim {
    display:block;
    font-family:'helvetica neue', helvetica, arial, sans-serif;
    font-weight:700;
    background:transparent;
    width:100px;
    height:49px;
    line-height:49px;
    color:#fff;
    text-align:center;
    font-size:2em;
    line-height:1.1em;
    position:fixed;
    top:6px;
    right:-2px;
    z-index:500;            
    cursor:pointer !important;
}

使用什么样的加密? 非常类似于DES

当知道密码时,是否有蛮力去盐?

1 个答案:

答案 0 :(得分:2)

此处提供了ENCODE()和DECODE()使用的算法的来源:

https://github.com/mysql/mysql-server/blob/5.7/sql/sql_crypt.cc

该文件中的评论说这个算法“应该适用于短字符串”,但这并不能让我相信它是一种专业级的加密算法。

请注意,MySQL 5.7中不推荐使用这两个函数。你应该使用AES_ENCRYPT()&而是AES_DECRYPT()

但是,还建议避免在SQL中使用加密函数,因为如果这样做,明文字符串将被添加到查询日志或二进制日志中:

INSERT INTO SuperSecureTable 
SET secret = AES_ENCRYPT('no one should see this', 'secret');

来自@ikegami的评论:

我认为你将加密与哈希相混淆。

更正:我明白你的观点。根据加密要求的安全性,AES_ENCRYPT()也不合适。最好在一个应用程序中使用最先进的加密技术,并将生成的加密数据插入数据库中。

这也解决了我上面提到的问题,即明文记录在日志中。