Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 |

2006-09-25(Mon)

Blowfishによる暗号化

BURPはBlowfishという暗号アルゴリズムを使用しているということで、探したところありました、Ruby用が。

http://www.moodindigo.org/blog/archives/000320.html

こちらのblowfishpr.rbを使用すればRubyでBlowfishを使用した暗号化/復号化が可能になります。

追記

バイナリ暗号化をする場合に末尾に0x00があると復号時に削除されてしまいますね、この辺は何か処理が必要です。


require "F:/ruby_RDE/blowfishpr.rb"

def print_hex(str)
  str.each_byte do |x|
    printf "0x%0x ", x
  end
  puts
end

def test(str, key, mode)
  passwd = key
  text = str
  print "  Plain : "
  if mode == "s"
    puts text
  else
    print_hex(text)
  end
  
  bfenc = Blowfish.new(passwd)
  cipher = bfenc.encrypt(text)
  print "Encrypt : "
  print_hex(cipher)

  bfdec = Blowfish.new(passwd)
  s = bfdec.decrypt(cipher)
  print "Decrypt : "
  if mode == "s"
    puts s
  else
    print_hex(s)
  end
end

passwd = "passward"
text = "あいうえお"
test(text, passwd, "s")
text = "\x00\x01\x02\x03\x04\x05\xF0\xF1\xF2\xF3\xF4\xF5"
test(text, passwd, "x")

#=>   Plain : あいうえお
#=> Encrypt : 0xeb 0xa2 0xbb 0x97 0x98 0x71 0x32 0x40 0x15 0x4b 0xac 0xbb 0x1d 0x23 0x8c 0x68 
#=> Decrypt : あいうえお
#=>   Plain : 0x0 0x1 0x2 0x3 0x4 0x5 0xf0 0xf1 0xf2 0xf3 0xf4 0xf5 
#=> Encrypt : 0x9e 0x1b 0x5c 0x2b 0x29 0x99 0x59 0xb8 0x14 0x36 0x71 0x28 0x91 0xd6 0x24 0x3 
#=> Decrypt : 0x0 0x1 0x2 0x3 0x4 0x5 0xf0 0xf1 0xf2 0xf3 0xf4 0xf5 

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20060925/p2