公钥,私钥,SSH Keys,KeyStore,证书

公钥,私钥是一种非对称加密的方式,可以用在很多方面,并且实现的标准不统一。

一,用于远程登陆


例于GithubBitbucket,还有公司的服务器可以使用SSH Keys快捷登陆。


生成方式:
ssh-keygen -t rsa -C “email@email.com”

二,用于给Android上的APK签名(Keystore来签名,Keystore包含公私钥与证书)


使用Eclipse的时候,调试的时候会用到默认的Debug.Keystore.发布的时候会用到Release.Keystore.


生成方式:
keytool.exe -genkey -alias androiddebugkey -keyalg RSA -validity 60000 -keystore debug.keystore

三,用于在编译Android项目的时候,给平台及应用签名


编译的时候会用到四个Key,分别是testkey,platform,shared,media,Android的源码目录 build/target/product/security下面。


生成方式:

development/tools/make_key testkey ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’

development/tools/make_key platform ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’

development/tools/make_key shared ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’

development/tools/make_key media ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’

之前一直有个误区,只需要一个公钥私钥对就可以行遍网络。不同的应用场景,使用公钥,私钥的方式也不一样,如在生成SSHkey的时候,只需要提供一个密码,但在生成Keystore的时候,就需要提供姓名,公司,位置等信息。

前三者之间也不是完全可以转换的,由三转二,有相应的方法,并且从Keystore中可以提取公钥与私钥。

File encoding & line delimiter

平常是Win7下使用Eclipse,SourceInsight,Notepad++作为主要的开发工作,但代码会提交到Linux服务器上,最近的项目遇到了File encoding & line delimiter不统一的问题。

File encoding:本想用UTF-8无Bom的格式来保存所有文件,但不争气的SourceInsight却不支持UTF-8格式,无耐之下只能使用ANSI,只是遇到中文注释就比较头痛,且某些XML的资源文件,要求UTF-8.

Line delimiter:之前一直没太注意,但使用Beyond Compare的二进制对比时,发现提交前后有差异,有的显示unix,有的显示pc,还有mix。原来在SourceInsight下,默认使用的是PC(Windows)格式,Elipse默认是unix,同一文件被两者编辑时会出现此问题。解决方法把两种工具设制格式统一,使用Elipse的工具把己有文件转换下。

(more…)

ANSI,UTF-8,UTF-8无BOM,ANSI as UTF-8

同一个文件,在Windows下,与在Ubuntu下为何显示的编码格式不同?

不同的编码格式为何在Eclipse,SourceInsight,Git有些能显示,有些不能?

最近工作中遇到的问题,带着种种疑问,逐步来揭秘.

1.UFT-16都是通用的,只要系统/工具支持,就能正常显示,无论是在哪个系统之下.

2.Windows的默认编码格式是ANSI.(对于简体中文版本Windows来说就是GBK/GB2312)

Ubuntu的默认编码格式是UTF-8无BOM,即Notepad++所识别成的ANSI as UTF-8

1

在Windows中新建一个纯英文的ANSI编码格式的文件 在Ubuntu中Gedit会显示为UTF-8 正常显示

2

在Windows中新建一个中英文的ANSI编码格式的文件 在Ubuntu中Gedit会提示错误,选择编码后显示GB2312 使用GBK格式打开正常

3

在Ubuntu中新建一个纯英文的UTF-8编码格式的文件 在Windows中用Notepad++打开会显示为ANSI 正常显示

4

在Ubuntu中新建一个中英文的UTF-8编码格式的文件 在Windows中用Notepad++打开会显示为ANSI  as UTF-8,

即UTF-8无BOM正常显示

3.总结

1

纯英文文本 ANSI = UTF-8无BOM = ANSI as UTF-8,

2

含有中文的文本 ANSI,UTF-8,之间需要显示的转换才能正常显示

对于Android代码,最好还是用UTF-8无BOM的形式来存储,在系统切换时更方便.在各个开发工具之间也都能正常显示,SourceInsight除外

Bugfree 添加权限管理

公司在用Bugfree,一是免费,二是开源,之前也试过CQ之类的工具,实际使用还是Bugfree简单实用,但它也存在明显的缺陷,如没有任何的权限管理.项目管理员把某Bug指派给某工程师,但此工程师仍有再次指派的权限,某些不自觉的就会私自再次指派,非常不利于Bug及其进度管理.

通过修改Bug.php添加指派给的权限控制,即仅有Bugfree管理员及项目管理员才有权限修改指派给(测试人员新建Bug的时候可以选择).

流程比较清晰,修改如下,标红色的部分为改动,主要是两处对管理员的判断,$_SESSION[‘TestIsProjectAdmin’],$_SESSION[‘TestIsAdmin’].

(more…)

Intranet,Win7,IIS,Virtual Server

I want to host a website in IIS at my computer,which is in the Intranet.Initially I follow this article http://bbs.pcbeta.com/viewthread-233903-1-1.html. But the site can only be opened by the intranet computers, and nothing I can do about it for a time.

As the result of Google, may be the firewall cause this problem.So I close the 360 security guard, and 360 Anti-virus.But it still can’t be open.Then continues to Google and baidu,and finally I solve the problem.

There are two key points:
1.The port of the virual server can’t assign to 80.(Chian Unicom block the port)
2.The windows internal firewall also need to close or open a port for you website.

 

HelloWorld in iphone4,android,Windows phone 7

在虚拟机中成功搭建了MacOS 后,安装了Iphone SDK,其上的第一个HelloWorld也已成功运行.也是第一次真正接触Object-C,跟Xcode的开发环境,是一种不同于Microsoft的Visual Studio的感觉,总之感觉起来挺亲切的.

在此之前也成功安装了Android的开发环境,HelloWorld都自动生成了,哈哈,程序员们要失业了.

又在此之前,随着Visual Studio 2010,也安装了Windows Phone的开发环境,也有HelloWorld的运行.

到目前为止,我的四核I5,4G内存,GTX260,1TB的机器上,安装了主流三大智能手机的开发环境,2大VIA,MTK非智能手机的编译环境.

 势有将手机软件开发进行到底的趋势吧,哈哈,其实对Android跟Iphone也是刚接触,但会了九阳神功,乾坤大挪移还很难搞定吗:)

安装这么多开发环境,其实是在想体验一下各个平台,熟悉下各自的特色,毕竟Mac跟Iphone不是想买就能买的起的.

今天在路上突然有种感觉,就是2000年的互联网泡沫,2010年之后的几年,会是移动互联网的泡沫.再过10年左右后,又会理性的回归.

你是怎么看的呢.