Наконец-то удалось решить эту проблему.
Password_Digest = Base64 ( SHA-1 ( nonce + create + password) )
nonce
= nonce как строка.До Endoce Base64, например, "1234"
create
= время в виде строки.Без кодировки
password
= пароль в виде строки.Нет кодирования.
Base64Nonce
= Base64.encode64(nonce).strip
# Base64 кодирует "1234"
chars = ("a".."z").to_a + ("1".."9").to_a + ("A".."Z").to_a
nonce = Array.new(20, '').collect{chars[rand(chars.size)]}.join
t = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%S.%LZ")
$time = t
$pass = p
Base64Nonce = Base64.encode64(nonce).strip
$digest_pass = Base64.encode64(Digest::SHA1.digest(nonce + $time + $pass)).strip
"wsse:Username" => username,
"wsse:Password" => $digest_pass,
"wsse:Nonce" => Base64Nonce,
"wsu:Created" => $time,