[#45318] Windows コマンドプロンプトで UTF-8を出力するには — Yuumi Yoshida <yuumi3@...>

おつかれさまです、 Yuumi3です。

11 messages 2008/08/08

[ruby-list:45391] Re: OpenSSL::CipherでのDESのやり方

From: "Hideo Yamamoto" <deoohi@...>
Date: 2008-08-25 08:34:50 UTC
List: ruby-list #45391
ちょっと書き直してみました。

require 'openssl'
#include OpenSSL::Cipher

# Sigle DES ECB
c1 = OpenSSL::Cipher::Cipher.new("des-ecb")
plain1 = "0000000000000000"
c1.key = "0000000000000000"

cipher = c1.encrypt.update(plain1) + c1.final

c2 = OpenSSL::Cipher::Cipher.new("DES-ECB")
c2.key = "0000000000000000"
plain2 = c2.decrypt.update(cipher) + c2.final


printf("plain1:")
plain1.to_a.pack('H*').unpack('C*').each{|c|
	printf("%02x ", c)
}
printf("\ncipher:")
cipher.to_a.pack('H*').unpack('C*').each{|c|
	printf("%02x ", c)
}
printf("\nplain2:")
plain2.to_a.pack('H*').unpack('C*').each{|c|
	printf("%02x ", c)
}

p(plain1 == plain2)  #=> true

ただ、特に結果に影響はありませんでした。

そもそもなにで引っかかってるのかを整理しますと、
私の場合、Cでちょっとしたコンソールアプリを作りことが多いのですが、
OpenSSLのAPIを呼び出すときは、コンソールからデータをHEX-ASCII形式の文字列で入力し、
それを数値に変換してAPIを呼び出すようなことをしていました。

RubyでOpenSSLを使うときに、HEX-ASCII形式で表現したデータの文字列を
数値データとしてOpenSSLのAPIに渡してあげるにはどのような記述をしたらいいのでしょうか?

In This Thread