Archive

Archive for January, 2016

[Linux]使用SSH-KEY方式登录SSH

January 18th, 2016 No comments

管理Linux主机多了之后,管理大量的登录密码是一件很麻烦的事情,使用SSH-KEY方式登录服务器可以很好的解决问题。
以下是使用SSH-KEY方式实现客户端免密码登录SSH的方法。一套SSH-KEY可以等遍所有的服务器。

1.使用ssh-keygen在本地创建登录远程SSH服务器使用的公钥和私钥

1
2
3
ssh-keygen -t [rsa|dsa] -C "comments"
# -t 可选择RSA 和 DSA 两种密钥
# -C 可选注释

一路enter之后,会在~/.ssh目录下创建两个文件
id_dsa #私钥,妥善保存好。
id_dsa.pub #公钥

2.将公钥复制到服务器上对应用户的 ~/.ssh/目录下。

3.在服务器用户的 ~/.ssh/目录下执行

1
2
3
cat id_dsa.pub >>authorized_keys
#  首次使用的时候
chmod 600 authorized_keys

需要注意的是出于安全考虑,authorized_keys必须是600权限
Read more…

[iOS]objective-c AES/DES/3DES等加密算法实现

January 12th, 2016 No comments

objective-c对AES/DES/3DES等加密提供了统一的加密方法CCCrypt进行实现,目前主要支持的算法有

@constant kCCAlgorithmAES128 Advanced Encryption Standard
@constant kCCAlgorithmAES Advanced Encryption Standard, 128-bit block
@constant kCCAlgorithmDES Data Encryption Standard
@constant kCCAlgorithm3DES Triple-DES, three key, EDE configuration
@constant kCCAlgorithmCAST CAST
@constant kCCAlgorithmRC4 RC4 stream cipher
@constant kCCAlgorithmBlowfish Blowfish block cipher

Read more…

Categories: 零敲碎打 Tags: , ,

Linux文件批量转编码iconv命令

January 12th, 2016 No comments

Linux下转换编码可以直接使用iconv命令搞定。支持单个文件和批量处理。
iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。它的作用是在多种国际编码格式之间进行文本内码的转换。

单个文件处理的shell命令

1
iconv -t utf-8 -f gb2312 source > target

# -f 源编码
# -t 目标编码
# -l :列出已知的编码字符集合
# -o file :指定输出文件
# -c :忽略输出的非法字符
# -s :禁止警告信息,但不是错误信息
Read more…

Categories: 零敲碎打 Tags: ,

[VBS]文件批量转编码

January 12th, 2016 No comments

工作中需要将大量GB2312编码的文件转换为UTF-8编码,Baidu找了一段很实用的VBS可以有效解决问题。
使用方法也很简单,添加到工程调用ConvertFile即可。需要注意的是Adodb.Stream方式生成的UTF-8文件的头部会抱憾3个字节的BOM,处理PHP之类的无BOM要求的文件时需要注意一下。

Read more…

Categories: 零敲碎打 Tags: ,

[iOS] 实现IIF功能和DECODE函数功能

January 12th, 2016 No comments

iOS开发过程中需要处理大量分支判断代码,需要大量使用if、switch等进行分支处理。代码编写和查看都可能出现潜在问题,使用Objective-c语言的自身特点,可以通过以下转换,优化分支判断处理的代码写法。关键是可以一行代码搞定各种分支判断。实现代码简化。

使用宏定义将三目运算改为IIF函数运算,类似于EXCEL的IF公式

1
2
3
4
#if !defined(IIF)
#define IIF_IMPL(condition,true_,false_) (condition)?true_:false_
#define IIF(condition,true_,false_) IIF_IMPL(condition,true_,false_)
#endif

Read more…