諸行無常

IT色々お勉強中のブログ

rails X-CSRF-TOKENからraw_token(毎回変わらないtoken)を取り出す方法

rails X-CSRF-TOKENからraw_token(毎回変わらないtoken)を取り出す方法

純粋に逆から実行していけば取れる

逆xorのメソッド作っておく

def xor_byte_strings(s1, s2) # :doc:
  s2_bytes = s2.bytes
  s1.each_byte.with_index { |c1, i| s2_bytes[i] ^= c1 }
  s2_bytes.pack("C*")
end

上から実行していく

# decodeする
masked_token=Base64.strict_decode64('対象 X-CSRF-TOKEN')
# one_time_pad取り出す
one_time_pad = masked_token[0...32]
# encrypted_csrf_token取り出す
encrypted_csrf_token = masked_token[32..-1]
# 逆xor実行
a=xor_byte_strings(one_time_pad, encrypted_csrf_token)
# base64でエンコードして見れるようにする
Base64.strict_encode64(a)

以上!