【转】Java应用打包后运行需要注意编码问题

转载自:Java应用打包后运行需要注意编码问题

文章针对作者原文略有修改,以下是正文。

最近在做一个项目,项目总的来说就是和数据库打交道,取出数据来通过HTTP协议提交到一个接口上去。具体功能不多说了,只是讲这里面的一点——编码问题
项目当中,涉及到取所有数据的MD5值。
在Java项目中,个人喜欢将项目的默认编码改为UTF-8。使用的开发工具以Eclipse为主。然而,奇怪的问题出现了。当我在IDE中对项目进行调试的时候没有任何问题,但是打成了jar包后再通过

java -jar project.jar

运行的时候,每次提交数据,接口都会返回数据说我的签名不正确。换句话说就是我的最后一步,做MD5运算的时候出了问题。

为什么打了jar包就不行呢?几经波折,又是查看参数的hashCode,又是检查所有提交内容的十六进制数据,发现是文本编码出了问题。在Eclipse中是正确的,但是打出jar包后,启动命令行一直没设置字符串默认编码,因此java虚拟机就按照所在系统的默认编码运行了。我使用的是Windows环境,那么自然是GBK编码。

后来通过查阅资料,解决的办法就是加一个参数指定编码:

java -Dfile.encoding=utf-8 -jar project.jar

这样就可以了。工具正常运行了。

安全感

1.当女生向男生诉求的时候,是女生真正有需求的时候,如果男生能够真正听到女生的渴求,愿意做一些对自己无意义但是对女生很重要的事情,女生就会很有安全感。

2.亲密关系出大问题的多半是沟通上出了严重问题,好的沟通会带来安全感。

3.信任是你一次又一次的猜疑,结果被证实错误,然后对对方越来越信任。


参考链接:

男生什么样的行为让你觉得很没有安全感?

女生什么样的行为让你觉得很没有安全感?

在windows server 2008上,用ffmpeg和crtmpserver搭建基于文件的可循环伪直播(RTMP直播)

前言:

捣鼓了好几天,总算弄好了,为了方便自己以后使用,特在此做个总结。如果能帮助到别人的话,再好不过了。

准备材料:

1.ffmpeg 推荐去官网下载适合自己的版本 http://ffmpeg.org/

2.crtmpserver 笔者使用的是一个测试版 下载测试版

3.test.mp4 测试文件请自行准备

继续阅读在windows server 2008上,用ffmpeg和crtmpserver搭建基于文件的可循环伪直播(RTMP直播)

大学-续

不是每个人都得循规蹈矩地上完高中上大学,上完大学去公司当上班族的。只不过如果不走这条相对轻松先苦后甜的路,那摆在大多数人眼前的选择就只有干粗活苦活累活。可是干粗活也是分人的,有的人干得了,有的人就干不了。有的人没有条件也没有选择,只能干粗活,那没什么好说的;可有的人如果明明有好的条件和机会却任性地放弃错过了,将来可是要后悔莫及的。当然,要是有人天赋异禀3岁识谱5岁编曲或者18岁就能打NBA那这些话不适用他。否则,好好读书永远不会让人吃亏。


参考链接:

孩子需要经历些什么才会明白学业的重要性?

大学

大学可以丰富人生视野,视野决定行动的方向,行动的方向决定以后的人生。
大学可以学到专业知识和专业技能,这些将为以后的事业打下基础。

大学可以培养见识与修养,更重要的是思想。
上了大学的人谈吐,对生活的态度,学习方法,逻辑思想等等都不一样。
不管你走到哪里,也不管你的专业知识和技能忘了多少。
只有这种思想会跟随你一生,影响你一生,而且会影响你的后代。

CENTOS下配置VSFTP且限制用户访问目录

1.安装vsftp

#yum install vsftpd -y

2.添加ftp帐号和目录

#useradd -d /var/www/html/isilent -s /sbin/nologin isilent

3.修改用户密码

#passwd isilent

4.配置vsftp

#vi /etc/vsftpd/vsftpd.conf

将配置文件中”anonymous_enable=YES“改为“anonymous_enable=NO”
取消如下配置前的注释符号:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

5.限制用户目录

#touch /etc/vsftpd/chroot_list

把用户名添加到这个文件中,注意,每个用户占一行

6.启动vsftp服务

#service vsftpd start

调用移动接口遇到的问题总结

方向一旦跑偏,造成的影响是非常大的。

1、请求地址问题

问题描述:移动接口的请求地址是IP地址,需要在header中设置host参数。测试过程中一直遇到400错误而不知道原因,于是决定在PC上面使用fidder进行抓包查看。抓到的包一直有问题,host地址始终是ip地址而不是设置好的域名。

问题原因:fidder抓手机包采用的是代理方式。抓包后对header中的host信息进行了改动。更深层次的原因是fidder采用了PC端的DNS解析。

问题解决:使用fidder抓包时,PC上面修改hosts文件,手机端请求地址改为域名方式。

2、Base64编码问题

问题描述:使用fidder抓包后发现,header信息中有一个参数不正确。移动方提示参数未设置。

问题原因:程序中使用了android.util.Base64进行Base64加密。该包进行加密的时候默认进行了自动换行操作。

问题解决:使用android.util.Base64包进行加密的时候,第二个参数需要改为Base64.NO_WRAP。

写一点关于安全的东西:)

一、双向消息加密

RSA,非对称加密算法。

DES,AES,对称加密算法。

用于服务端和客户端通讯。

客户端向服务端发送数据,采用RSA算法,使用公钥进行加密。服务端使用私钥进行解密。

服务端向客户端发送数据,采用DES或AES算法进行加密。客户端进行解密。

二、用户登录验证

谷歌验证 (Google Authenticator)

用于用户登录二次验证。

在centos下通过php操作tinyproxy的状态

一、通过php中的system命令来操作tinyproxy

system("service tinyproxy restart");

二、修改apache用户为tinyproxy

vim /etc/httpd/conf/httpd.conf

三、修改subsys文件夹的权限

chmod 777 /var/lock/subsys

四、重启apache服务器

service httpd restart

备注:

1.关于tinyproxy的使用,可以参考:CENTOS 下安装配置 TinyProxy

2.关于centos下php运行环境的搭建,可以参考:在CentOS上搭建PHP服务器环境