<body>

Caiwangqin's blog

Focus on Web2.0, Business, Architecture, Agile, Technic and beyond…

Encrypt with Ruby decrypt in PHP

2009年12月16日 星期三

Ruby encrypt decrypt

http://coderay.rubychan.de/rays/show/6287



 




require 'openssl'

require 'base64'

def encipher(data_to_encode)

cipher = OpenSSL::Cipher::Cipher.new("des-ede3-cbc")

key = "secretkey"

cipher.encrypt(key)

encoded_data = cipher.update(data_to_encode)

encoded_data cipher.final

return Base64.encode64(encoded_data)

end

def decipher(encoded)

encoded = Base64.decode64(encoded)



cipher = OpenSSL::Cipher::Cipher.new("des-ede3-cbc")

key = "secretkey"

cipher.decrypt(key)

encoded_data = cipher.update(encoded)

encoded_data cipher.final

return encoded_data

end

 



PHP encrypt decrypt

http://coderay.rubychan.de/rays/show/6288



 




function getkeyiv($key_size, $iv_size, $key, $iv='') {

if ($iv == '') {

$iv = 'OpenSSL for Ruby rulez!';

}

$iv = substr($iv,0,$iv_size);



$gen = '';

do {

$gen = $gen.md5($gen.$key.$iv,true);

} while (strlen($gen)($iv_size+$key_size));

$o[0] = substr($gen,0,$key_size);

$o[1] = $iv; //this is not the generated IV,

//just the original "salt" cut to the required size

return $o;

}

function trimpadding($str) {

if (ord($str[strlen($str)-1]) 9) {

return rtrim($str,$str[strlen($str)-1]);

} else {

return $str;

}

}

function encipher($data_to_encode){

$key = 'secretkey';



$td = mcrypt_module_open(MCRYPT_TRIPLEDES, '', MCRYPT_MODE_CBC, '');

$iv_size = mcrypt_enc_get_iv_size($td);

$key_size = mcrypt_enc_get_key_size($td);

$genkey = getkeyiv($key_size, $iv_size,$key);

if (mcrypt_generic_init($td,$genkey[0],$genkey[1]) != -1) {

$encoded_data = mcrypt_generic($td, $data_to_encode);

}

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

return base64_encode($encoded_data);

}

function decipher($encoded) {

$key = 'secretkey';

$decrypted='';

$enc = base64_decode($encoded);

$td = mcrypt_module_open(MCRYPT_TRIPLEDES, '', MCRYPT_MODE_CBC, '');

$iv_size = mcrypt_enc_get_iv_size($td);

$key_size = mcrypt_enc_get_key_size($td);

$genkey = getkeyiv($key_size, $iv_size,$key);

if (mcrypt_generic_init($td,$genkey[0],$genkey[1]) != -1) {

$decrypted = mdecrypt_generic($td, $enc);

}

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

return trimpadding($decrypted);

}

?>

 

 

标签: , , ,

posted by Caiwangqin, 下午5:26 | Permalink

[ChinaonRails]中国 Ruby / Rails 优秀人物采访计划

2009年9月1日 星期二

Dmitry Belitsky对几位成功的Rubyist进行了9个问题的email访问,然后公布了他们的回答,他们的经验对要想成为一个高效、成功、开心的Ruby / Rails工作者非常有帮助。

受此启发,我准备对中国 Ruby / Rails 优秀人物使用同样的问答对话方式,看看他们是怎样做到的。

以下是问题,如果你希望分享你的经验,请回答以下问题,发布到ChinaonRails社区,或我的Email(jesse.cai(at)gmail.com)中,同时也非常欢迎参与者邀请中国 Ruby / Rails 优秀人物参与。

1. 请简单介绍一下你自己,你目前的状态及对短期目标的打算,留下Blog、Twitter等。

2. 你是怎样找到你的第一个Ruby相关的工作的?

3. 你是在哪里和怎样搜索工作机会?你能给我一些最好的方法找到Ruby相关工作的建议吗?

4. 你能给一个没有完整项目展示的Ruby新手一些建议吗?

5. 你可以说说怎样做可以让现在比过去更好的吗?主要是关于使用Ruby工作、客户、如何寻找好的客户方面。很多人梦想着现在比过去好,将来比现在好,所以请写下任何你关于超越过去的想法。

6. 你可以推荐一些你认为将帮助一个程序员生活得更好的书籍、网站、秘诀吗?

7. 你一周工作多长时间?你怎样保持工作效率和精力集中呢?

8. 你怎样管理你的工作空间?你在工作时使用哪些工具?

9. 怎样成为一个成功和有用的程序员?

10. 什么是一个程序员应该知道的?

官方邀请链接:http://chinaonrails.com/topic/view/3337/1.html

已经回复的人有:

中国 Ruby / Rails 群英谱 - gigix
中国 Ruby / Rails 群英谱 - Robin Lu
中国 Ruby / Rails 群英谱 - Eric Sun
中国 Ruby / Rails 群英谱 - IceskYsl
中国 Ruby / Rails 群英谱 - saberma
中国 Ruby / Rails 群英谱 - Dave Liu

中国 Ruby / Rails 群英谱 - dongbin
中国 Ruby / Rails 群英谱 - Cai Li
中国 Ruby / Rails 群英谱 - Daniel Lv
中国 Ruby / Rails 群英谱 - 404
中国 Ruby / Rails 群英谱 - zhangxue
中国 Ruby / Rails 群英谱 - Rui Ma

标签: , ,

posted by Caiwangqin, 上午10:57 | Permalink

ChinaonRails in 2009

2009年1月10日 星期六

时光飞逝,ChinaonRails.Com又跨过入了新的一年。bd7lx来信说:希望COR新年能坚持下去,页脚也应该是“© 2007-2009

过去的两年时间里,很多人在在ChinaonRails上分享知识,增进友谊。而ChinaonRails也一直保持了朴素,自然,平和,亲切的风格,帮助了一些人解决问题(有问有答),招聘RubyonRails人才举办社区活动,协作翻译Raisl 2.1 更新了什么牵手InfoQ,部分充当了Rails中国社区和英语国家建起了桥梁的作用……

RubyonRails Framework也得到了不断的发展,源代码迁移到Git管理,Rails 2.1,2.2发布,与Merb统战,绑在一起……

新的一年里,不管国际社会风云怎样变幻,我希望Railser in China继续与世界的Rails developer们一起,保持程序员这一份追求效率、激情、快乐的心情,踏实学习,发展创新,为自己赢得更多机会,为这个时代做点看得见摸得着的实事。

祝广大Rails从业者新年行大运。




标签: , ,

posted by Caiwangqin, 下午1:48 | Permalink

善用 Rails 的 script/runner

2008年12月15日 星期一

网站中经常有一些需要在后台运行的程序,Rails 给我们提供了 script/runner 方法运行 model 中的 action, 如:

ruby script/runner User.find(:first)

之前一般都使用这种方法来处理后台运行的方法,其实还可以有另外一种灵活方法使用 script/runner,可以在 Rails app 的配置,和 Rails Framework 的一些内置方法,但将需要完成的任务写在独立的 Ruby 文件中,如:

vim cron_task.rb

u = User.find(:first)
puts u.inspect

然后在命令行中使用以下方式执行:

ruby script/runner cron_task.rb

使用这样的方式执行 cron_task.rb, 就可以在 ruby 文件中方便的使用 rails app 的 config 和 framework.

当然也可以直接使用Ruby/MySQL直接连数据库操作。

标签: ,

posted by Caiwangqin, 下午6:13 | Permalink

Import Wordpress export file into Blogger

2008年12月4日 星期四

i tried many tools in china mainland to import Wordpress export file into Blogger, but neither can works. so i export all blog from my Wordpress 2.04 to a xml file(just save all feed to file through browser), wrote a ruby script convert to Blogger format, it works for me.

http://snippets.dzone.com/posts/show/6659

标签: , , ,

posted by Caiwangqin, 下午9:19 | Permalink

Ruby coding standards

2008年9月23日 星期二

posted by Caiwangqin, 上午9:28 | Permalink