<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cap&#039;n webb &#187; JRuby</title>
	<atom:link href="http://blog.dataich.com/tag/jruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dataich.com</link>
	<description>almost all things about it</description>
	<lastBuildDate>Thu, 12 Jan 2012 03:38:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>jrubyでopenssl</title>
		<link>http://blog.dataich.com/2008/03/26/jruby%e3%81%a7openssl/</link>
		<comments>http://blog.dataich.com/2008/03/26/jruby%e3%81%a7openssl/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 07:57:00 +0000</pubDate>
		<dc:creator>dataich</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[OpenSSL]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://dataich.s15.coreserver.jp/blog/2008/03/26/jruby%e3%81%a7openssl/</guid>
		<description><![CDATA[まずはjruby用のopensslをgemにてインストール 1 2 3 4 5 # jruby -S gem install jruby-openssl Successfully installed jruby-open [...]]]></description>
			<content:encoded><![CDATA[<p>まずはjruby用のopensslをgemにてインストール</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># jruby -S gem install jruby-openssl</span>
Successfully installed jruby-openssl-<span style="color: #000000;">0.2</span>
<span style="color: #000000;">1</span> gem installed
Installing ri documentation <span style="color: #000000; font-weight: bold;">for</span> jruby-openssl-<span style="color: #000000;">0.2</span>...
Installing RDoc documentation <span style="color: #000000; font-weight: bold;">for</span> jruby-openssl-<span style="color: #000000;">0.2</span>...</pre></td></tr></table></div>

<p>コードとしては</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'openssl'</span>
&nbsp;
key    = <span style="color:#996600;">&quot;キーとなる文字列&quot;</span>
target = <span style="color:#996600;">&quot;暗号化ターゲット&quot;</span>
aes = <span style="color:#6666ff; font-weight:bold;">OpenSSL::Cipher::Cipher</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;AES-256-CBC&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
aes.<span style="color:#9900CC;">encrypt</span>
aes.<span style="color:#9900CC;">pkcs5_keyivgen</span><span style="color:#006600; font-weight:bold;">&#40;</span>key<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># 暗号化</span>
<span style="color:#008000; font-style:italic;"># 溢れる分があるので、finalの結合</span>
value = aes.<span style="color:#9900CC;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span>target<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">+</span> aes.<span style="color:#9900CC;">final</span>
<span style="color:#008000; font-style:italic;"># DBに登録したいのでHEXにしておく。</span>
value = value.<span style="color:#9900CC;">unpack</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;H*&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># 複合化</span>
aes = <span style="color:#6666ff; font-weight:bold;">OpenSSL::Cipher::AES</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;256-CBC&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
aes.<span style="color:#9900CC;">decrypt</span>
aes.<span style="color:#9900CC;">pkcs5_keyivgen</span><span style="color:#006600; font-weight:bold;">&#40;</span>key<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># HEXをunpackし、複合化する。ここでもfinaｌを結合</span>
value = aes.<span style="color:#9900CC;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span>value<span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">pack</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;H*&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">+</span> aes.<span style="color:#9900CC;">final</span></pre></td></tr></table></div>

<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://blog.dataich.com/2008/03/26/jruby%e3%81%a7openssl/&via=dataich&text=jrubyでopenssl&related=:&lang=en&count=vertical" class="twitter-share-button" onclick="pageTracker._trackPageview('/outgoing/twitter.com/share?url=http_//blog.dataich.com/2008/03/26/jruby_e3_81_a7openssl/_via=dataich_text=jruby_openssl_related=_lang=en_count=vertical&amp;referer=');">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.dataich.com/2008/03/26/jruby%e3%81%a7openssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

