分类目录归档:LINUX

Linux下SHA256计算哈希值和RSA加密

项目中遇到系统之间文件传输要使用SHA256 with RSA1024加密,计算签名。详细了解了一下。

1、SHA256
哈希算法用于计算信息摘要。因为md5和sha1有被碰撞和破解的可能性,所以使用sha256。

1.1、使用sha256sum命令计算哈希值
输入:一个文件或一个字符串
输出:SHA256输出256bit,32个字节,显示为64个16进制字符

1)当对字符串计算哈希值时,字符串不变,计算出的哈希值结果是一致的
2)当对两个文件计算时,文件生成时间不同,但文件内容相同,计算出的哈希值是一致的
3)当对两个相同内容的文件,分别打包压缩成tar.gz格式后,计算出的哈希值结果不一致
应该是在tar打包压缩时,添加了随机数,造成两个文件的哈希值不一致

2、RSA加密
RSA每次生成的密文都不一致?
公钥相同,明文相同,每次RSA加密的结果都不一致。因为RSA算法,加密前对明文进行了随机数填充,解密的结果不会受到影响。

输入:一个文件或一个字符串
输出:RSA 1024输出密文1024bit,128个字节的16进制字符

因为RSA key长度是1024,所以输出的密文也是1024吗?
继续阅读Linux下SHA256计算哈希值和RSA加密

CentOS搭建Weblogic容器

Weblogic是一个Java App的容器,一般大型应用跑在Weblogic中。系统为CentOS6.2 64bit。

一、安装
这里安装的是Weblogic 11g。

1、下载地址:
http://www.oracle.com/technetwork/cn/middleware/ias/downloads/wls-main-091116-zhs.html

64位版本选择:
Oracle WebLogic Server 11gR1 (10.3.6) + Coherence – 打包安装程序
通用:1 GB File1

网盘共享地址:
wls1036_generic.jar

2、安装JDK
通用的64位Weblogic安装程序本身并未包含JDK,所以要先下载并安装JDK。
安装过程见前一篇:CentOS搭建tomcat容器

3、开始安装
控制台安装模式:

java -jar wls1036_generic.jar -mode=console

1)输入next

Extracting 0%....................................................................................................100%

<-------------------- Oracle Installer - WebLogic 10.3.6.0 ------------------->

Welcome:
--------

This installer will guide you through the installation of WebLogic 10.3.6.0. 
Type "Next" or enter to proceed to the next prompt.  If you want to change data entered previously, type "Previous".  You may quit the installer at any time by typing "Exit".

Enter [Exit][Next]> 


继续阅读CentOS搭建Weblogic容器

CentOS搭建tomcat容器

这里我们要配置JDK1.8 + Tomcat 8的环境。Tomcat是一个web容器,里面跑的是web applaction。系统为CentOS6.2 64bit。

一、安装JDK1.8
1、下载
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
由于无法直接获取下载地址,只能先在本机下载再上传rpm包到服务器

网盘共享地址:
jdk-8u45-linux-x64.tar.gz
jdk-8u45-linux-x64.rpm

2、卸载OpenJDK

rpm -qa | grep java

网上说要先卸载旧版的JDK,如果有的话。

3、安装
上传之后安装:

# rpm -ivh /tmp/jdk-8u45-linux-x64.rpm

Preparing...                ########################################### [100%]
   1:jdk1.8.0_45            ########################################### [100%]
Unpacking JAR files...
	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	jfxrt.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...


JDK安装路径为/usr/java。
继续阅读CentOS搭建tomcat容器

windows和linux打印树状目录结构

windows下有tree命令可以打印出树状目录结构,linux下也有这个命令。

1、windows下tree命令
cmd窗口中查看帮助:

tree /?

以图形显示驱动器或路径的文件夹结构。

TREE [drive:][path] [/F] [/A]
   /F   显示每个文件夹中文件的名称。
   /A   使用 ASCII 字符,而不使用扩展字符。


使用tree /f > tree.txt命令,就可以把打印出的树状目录结构写入到tree.txt文件中了。

2、linux下tree命令
linux下的tree命令功能更强大,参数更多。

安装:

yum install tree

查看帮助:

tree --help

其中常用参数:
-a:打印全部文件。
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合(显示的树状图为实线不是虚线)。
-C:在文件和目录清单加上色彩,便于区分各种类型。
-d:只打印目录。
-L level:指定打印目录的深度(层级)。
-f:打印出每个文件、目录的绝对路径。
继续阅读windows和linux打印树状目录结构

Linux rz和sz命令

rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。
优点就是不用再开一个sftp工具登录上去上传下载文件。

sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器

安装命令:

yum install lrzsz

从服务端发送文件到客户端:

sz filename

从客户端上传文件到服务端:

rz

在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

SecureCRT设置默认路径:
Options -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories

Xshell设置默认路径:
右键会话 -> 属性 -> ZMODEM -> 接收文件夹

PS:同事和我说SecureCRT可以方便的上传下载文件,而Xshell没有。我上网一查原来用的是同一个sz/rz工具,Xshell下没有菜单选择要输命令。

vim使用笔记

vim编辑器安装c.vim插件对C/C++编程有很大的帮助。
官方主页:http://www.vim.org/scripts/script.php?script_id=213

1、下载插件

cd ~
wget http://www.vim.org/scripts/download_script.php?src_id=21803 -O c_vim.zip

我下载的是2014-04-21发布的6.1.1

2、解压安装

mkdir ~/.vim
cd ~/.vim
unzip ~/c_vim.zip

3、激活插件

vim /etc/vimrc

加入:

filetype plugin on

PS:在vim中使用:set runtimepath可以查看插件能安装的位置
PS2:默认插件位置好像在/usr/share/vim/vim72

用vim编程还需要有一个适合的编辑器风格。
继续阅读vim使用笔记

Linux xargs命令

xargs命令的作用就是将上一个命令的结果,作为xargs后面命令的参数来使用。

命令对比:
1、假设当前目录下有111.txt和222.txt两个文件

find -name 111.txt | ls -la

搜索出来的结果和ls -la命令执行结果一样。

find -name 111.txt | xargs ls -la

搜索出来的结果只有111.txt信息。

第二句find语句将前面的结果作为了ls -la的参数,ls -la 111.txt。

2、在当前目录下搜索以.c结尾的文件

find . -name "*.c" | grep SetMessage

搜索出来的是一个叫SetMessage.c的文件。

find . -name "*.c" | xargs grep SetMessage

搜索出来的是在某个.c中有SetMessage函数定义。

第一个find语句是grep从管道出来的结果集中去找SetMessage的内容。
第二个find语句是将管道出来的结果作为grep的参数,比如结果里有1.c、2.c、SetMessage.c,命令就变成
grep SetMessage 1.c 2.c SetMessage.c
后来在2.c中找到SetMessage函数定义。

CentOS VPS安装shadowsocks代理服务端

shadowsocks是一个轻量级的socks5代理软件,shadowsocks开发语言有nodejs、go、python、c。

shadowsocks python语言版
https://github.com/clowwindy/shadowsocks
shadowsocks go语言版
https://github.com/hugozhu/shadowsocks-go
shadowsocks nodejs语言版
https://github.com/clowwindy/shadowsocks-nodejs
shadowsocks libev版(使用C语言+libev库+openssl开发)
https://github.com/madeye/shadowsocks-libev
shadowsocks libuv版(很久没更新了)
https://github.com/dndx/shadowsocks-libuv

网上推荐安装python版和Shadowsocks-libev版,这里安装标准python版,系统为CentOS6。

一、服务端
1、安装库和shadowsocks

yum install m2crypto python-setuptools
easy_install pip
pip install shadowsocks
继续阅读CentOS VPS安装shadowsocks代理服务端

升级my.cnf时报错

最近在/etc目录下发现有一个my.cnf.rpmnew文件,应该是之前将mysql升级为mariadb时产生的。

和原来的my.cnf文件相比里面多了一些内容:

# Semisynchronous Replication
# http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html
# uncomment next line on MASTER
;plugin-load=rpl_semi_sync_master=semisync_master.so
# uncomment next line on SLAVE
;plugin-load=rpl_semi_sync_slave=semisync_slave.so

# Others options for Semisynchronous Replication
;rpl_semi_sync_master_enabled=1
;rpl_semi_sync_master_timeout=10
;rpl_semi_sync_slave_enabled=1

# http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html
;performance_schema

于是将mysql的常规配置参数复制到了该文件并改名为my.cnf。 继续阅读升级my.cnf时报错