トップページ > Ruby > Ruby - XORによる暗号化 プログラム プログラム # coding: UTF-8 class String def ^(other) text = self.unpack("U*") key = other.unpack("U*") length = text.size - key.size if length > 0 raise "keyの長さが短すぎます" elsif length < 0 key = key.take(text.size) end text.zip(key).map{|a, b| a ^ b}.pack("U*") end end text = "plain text" key = "abcdefghij" p text ^ key p text ^ key ^ key "\u0011\u000E\u0002\r\vF\u00