mysql decode encode 乱码问题

mysql decode encode 乱码问题

 

帮网友解决了一个问题,感觉还是挺好的。

 

问题是这样的: 

问个问题:为什么我mysql中加密和解密出来的字段值不一样?
AES_ENCRYPT和  AES_DECRYPT 

 但是解密出来就不对了 有时候加密变成空值 

 

我试过,确实有这样的情况:

INSERT INTO test () VALUES (ENCODE('老师你好','123456'));

插入了一个ENCODE的字符串,

SELECT DECODE(testField,'123456' ) FROM test;

查询出来的结果 是è€å¸ˆä½ 好, 看不懂啊!

 

 

注意到,test 表的编码是latin1, 如果test 表的编码是utf8 或者 gbk, 那么, INSERT INTO test () VALUES (ENCODE('老师你好','123456')); 这一句是会失败的, 我猜测 应该是编码问题。 如果开始是utf8,一个字符串在mysql之后, 其内容发生变化, 然后就变成了utf8不能认识的字符串了。 但是latin1 是可以认识的,因为 latin1是单字节编码的。

ENCODE('老师你好','123456') 是可以存入latin1 的。 但是不能正确读取。 其解析出来的字符串,latin1 无法表示 

 

注意到这一点,其实就好办了, testField 字段就用 latin1 编码, 读取的时候以latin1 的方式解析,然后再次组装成 utf8,。 

 

这样,虽然可以, 但是,般不建议通过把密码明文直接传递到 数据库

应该是加密后再传递
通过md5 即可 

 

测试代码如下:

# show variables like 'character%';
drop TABLE if EXISTS test;
/* generating test table */
CREATE TABLE `test` (
`testField` varchar(512) DEFAULT NULL
# ) ENGINE=InnoDB DEFAULT CHARSET= 'UTF8' COLLATE utf8_general_ci; 
) ENGINE=InnoDB DEFAULT CHARACTER SET latin1;/* adding some test data to it */
# INSERT INTO test () VALUES (DES_ENCRYPT("Hello")), (DES_ENCRYPT("World"));# INSERT INTO test () VALUES (ENCODE('abc','123')), ENCODE('mytext','mykeystring'));# INSERT INTO test VALUES('a阿萨德b'); 
INSERT INTO test () VALUES (ENCODE('老师你好','123456'));SELECT DECODE(testField,'123456' ) FROM test;SELECT * FROM test;# SELECT ENCODE('abc','123'), DECODE('aaa','123');SELECT DECODE(ENCODE('mytext','mykeystring'),'mykeystring');# SELECT DES_ENCRYPT('aa'), DES_DECRYPT('asdadw');

 

posted on 2017-08-10 16:47 CanntBelieve 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/FlyAway2013/p/7340106.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab读取正则找科学,MATLAB常用正则表达式记录

MATLAB正则表达式一、正则表达式正则表达式是一串用于定义某种模式的字符。在有些情况下(例如,在解析程序输入或处理文本块时),您通常会使用正则表达式在文本中搜索与该模式匹配的一组单词。数据处理是matlab的长项,但是正则表达式在做一些不…

matlab序列谱分析,基于MATLAB序列谱分析及FFT实现快速卷积.pdf

数字信号处理大作业基于MATLAB 的序列谱分析与FFT 实现快速卷积学 院(系): 软件学院专 业: 网络工程学 生 姓 名:学 号:班 级:完 成 日 期:大连理工大学Dalian University of Technology报告内容一、设计题…

通过JDBC进行简单的增删改查(以MySQL为例)

目录 前言:什么是JDBC 一、准备工作(一):MySQL安装配置和基础学习 二、准备工作(二):下载数据库对应的jar包并导入 三、JDBC基本操作 (1)定义记录的类(可选) (2)连接的获…

Windows Mobile 6.0下实现自绘多种状态按钮(Win32) 续

这篇文章是以前的补充: http://www.cnblogs.com/wangkewei/archive/2009/02/24/1397490.html 放在首页是想借助各位从事Windows Mobile本地代码开发的前辈们力量,把这方面的资料完善一下,我会总结更多有关这方面的文章。 1.原理介绍DRAWITE…

search engine php,用php简单实现search engine friendly的url_php技巧

比如说我用的是虚拟主机,也想实现url优化,但是我没有服务器权限,这时候可以从PATH_INFO来下手.访问http://www.myhost.com/foo.php/a/A/b/B/c/C这个url的时候,如果apache的AllowPathinfo已经打开,用php访问$_SERVER[PATH_INFO]可以获得a/A/b/B/c/C这串字符 这时候再用php加以解…

新书品读《三级网络技术预测试卷与考点解析》,欢迎拍砖、跟砖提建议。

新书品读:《三级网络技术预测试卷与考点解析》已正式出版上市,欢迎拍砖、跟砖提建议。第1章 考前预测试卷11.1 上午试题(考试时间120分钟,满分100分)1.1.1 笔试试卷一、选择题(每小题1分,共60…

PHP外部引用样式,PHP引用外部css有什么好处

PHP引用外部css的好处有:1、网页处理速度会更快一些;2、可以防止一些电脑程度较低的使用者直接看到CSS语法;3、维护方便。PHP引用外部css有什么好处?php页面外部调用css样式表时有三处优点:第一个好处:网页…

程序员最痛苦的事,就是程序出错;程序员最最痛苦的事,就是程序出错了还没有错误信息!--IIS Service Unavailable 问题如何解决...

今天有人问如何处理IIS网站出现“Service Unavailable”的情况。 在网上google了一下,导致这个出错的原因很多,而“Service Unavailable”这个出错信息根本就没有什么价值。程序员最痛苦的事,就是程序出错;程序员最最痛苦的事&…

Swift - 重写导航栏返回按钮

// 重写导航栏返回按钮方法 func configBackBtn() -> Void { // 返回按钮 let backButton UIButton(type: .custom) // 给按钮设置返回箭头图片 backButton.setImage(UIImage(named: "NavigationBar_goBack_icon"), for: .normal) // 设置frame backButton.frame…

java多张图片上传安卓,Android Rxjava+Retrofit2 多图片+文字上传

注意点:方案一中:map.put(“files\”; filename\”” file.getName(), requestBody);方案二中:builder.addFormDataPart(“files”, file.getName(), imageBody);需与服务器一制,如:Content-Disposition: form-data; …

memcached全面剖析

目录译者序.................................................................................................................................................4第1 章 memcached的基础..............................................................................…

BootstrapVue UI组件

vue升级会遇到各种各样的坑,今天我说的是我遇到的其中一个;vue-strap vue可以引入的UI框架有很多,vue-strap就是其中之一。在vue1.0中vue-strap的表现很好。没有什么毛病。但是在vue2.0中就出现各种问题,在vue2.0中,pr…

php 缩略图 等比例 不失真,PHP自适应宽高度等比例缩略图函数 (无裁切)

对于产品类或者图片类网站来讲,缩略图是一个很重要的应用。其实说来很简单,也就是把大图缩放成一个小图,用于图片的列表展现,这样能够达到用户快速浏览的目的,又能节省带宽。php若是是等比例缩放,好比小图是…

Share Point 开发系列之一:开发方式的选择

Share Point 开发系列虽然做了一段时间的Share point开发,但Share point对于我来说还是新的东西,回想起当时刚开始接触Share point的时候,到处找资料,资料到是找了很多,可是还是不知道如何下手去做Share point开发,也曾经在Cnblog上搜索了很多文章,但是对于我这样的新手来说还是…