(JS-PHP)使用RSA算法进行加密通讯

用户名密码明文直接POST到后端,很容易被别人从监听到。注:包括使用MD5等哈希函数处理后的数据,这里也算做明文(现在MD5爆破网站已经很多了~)。对安全性要求较高的网站,比如银行和大型企业等都会使用HTTPS对其进行加密通讯。但是由于效率原因,使用HTTPS的代价是及其昂贵的,对于访问量稍大的网站就会造成严重的性能瓶颈。解决方法一般只能采用专门的SSL硬件加速设备如F5的BIGIP等。所以很多网站选择了模拟SSL的做法,使用RSA来对密码等安全信息进行公钥加密,服务端用私钥解密。 通常是对密码进行加密,具体如下: 第一步: 加载三个RSA的js库文件,可以到这里下载 http://www.ohdave.com/rsa/。 第二步: 获取秘钥 1. 相关信息 通常情况下网站的SSL证书是由专门的CA机构(如VeriSign)颁发,同时需要交纳一定数额的费用。可是对于平时开发测试或其他情况下,我们自己也可以充当CA来生成自己颁发的证书。当然与前者相比缺点很明显:不能获得各个浏览器的信任,会弹出警告提示。不过,好消息是,对安全性要求稍低的网站现在可以考虑使用免费的CA认证(貌似是其级别最低的证书)。 跟VeriSign一样,StartSSL(网址:http://www.startssl.com,公司名:StartCom)也是一家CA机构,它的根证书很久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。在2009年9月份,StartSSL竟然搞定了微软:微软在升级补丁中,更新了通过Windows根证书认证程序(Windows Root Certificate Program)的厂商清单,并首次将StartCom公司列入了该认证清单,这是微软首次将提供免费数字验证技术的厂商加入根证书认证列表中。现在,在Windows 7或安装了升级补丁的Windows Vista或Windows XP操作系统中,系统会完全信任由StartCom这类免费数字认证机构认证的数字证书,从而使StartSSL也得到了IE浏览器的支持。 2. 要生成获得证书所需的密钥等文件 openssl genrsa -des3 -out server.pem 1024 openssl req -new -key server.pem -out server.csr openssl rsa -in server.pem -out server.pem 使用上面的命令就会创建一个证书申请,这里我们会要求输入国家、组织、姓名等信息,但是不会要求输入证书有效天数,因为证书有效天数是CA认证中心给我们的;然后我们会把这个生成好的cert.csr(Certificate Signing Request (CSR):证书签名申请)发给CA认证中心。CA认证中心通过后,会反馈(通常是邮件)回来认证的信息,再导入即可。 把上面生成的文件内容提交给CA,即可换取证书;若自行生成则: openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt 3. 获取十六进制的密钥 数据是用ASN.1编码过的,所以可以用openssl命令从密钥文件(key或pem)提取秘钥 openssl asn1parse -out temp.ans … Continue reading “(JS-PHP)使用RSA算法进行加密通讯”

2015年6月编程语言排行榜: Swift份额上升 Objective-C成自由落体

时隔一年后,Swift再次以骄人的成绩出现在大众眼前,本月排名第14位,并且其份额还在不断攀升中。在Stack Overflow上对157个国家的26,086名开发者的调查中也发现:Swift语言最受开发者欢迎,其以76.6%的比重高占榜首。 而苹果公司的另一门语言Objective-C则成了“自由落体”,过去几个月每月亏损约1%的市场份额,如果按照这样的趋势发展下去,那么Objective-C将在今年年底跌出Top20。Objective-C份额下降,大部分是受Swift影响;此外,也有频繁使用C++编写iOS底层应用所致。 编程语言排行榜 TOP 20 榜单: 前10名编程语言走势图: 以下是21-50编程语言排名:

2015年5月编程语言排行榜: Visual Studio系列在上升

TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、 课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。 该指数可以用来检查你的编程技能是否仍然是最新的或作出什么开始建立一个新的软件系统时,编程语言应采取的战略决策。在 TIOBE 指数的定义可以在这里找到。 编程语言排行榜 TOP 20 榜单: 前 10 名编程语言长期走势图: 以下是 21-50 编程语言排名:   后 50 名编程语言如下: 4th Dimension/4D, ABC, Alice, Apex, APL, AutoLISP, Automator, Bash, bc, Bourne shell, C shell, Caml, CL (OS/400), Clean, Clojure, Common Lisp, Eiffel, Emacs Lisp, EXEC, Factor, Forth, Haskell, Icon, IDL, INTERCAL, … Continue reading “2015年5月编程语言排行榜: Visual Studio系列在上升”