[解決済み] ruby sha 256 hexidigest 値は python が生成するものと異なる。
2022-02-09 12:57:23
質問
PythonのhashlibライブラリとrubyのDigest::SHA256.hexdigestライブラリを使っています。
pythonで、私は試してみました。
import hashlib
hasher = hashlib.sha256()
hasher.update("xyz")
hasher.digest()
hash = hasher.hexdigest()
print hash
output : 3608bca1e44ea6c4d268eb6db02260269892c0b42b86bbf1e77a6fa16c3c9282
Rubyで、やってみました。
require 'digest'
hasher = Digest::SHA256.digest "xyz"
hash = Digest::SHA256.hexdigest(hasher)
output : "18cefdae0f25ad7bb5f3934634513e54e5ac56d9891eb13ce456d3eb1f3e72e8"
なぜこのような違いがあるのか、どなたか教えていただけませんか?どうすればパイソンと同じ値を得ることができますか?
どのように解決するのですか?
必要なルビーコードは
require 'digest'
hash = Digest::SHA256.hexdigest("xyz")
hexdigest
はダイジェストする文字列を引数に取るので、 前のコードでは文字列をダイジェストして (32バイトの生の配列として返す)、 その & の SHA256 を計算していました (フォーマットは 64 ヘキサ文字です)。
RubyのDigestライブラリは、Pythonの例と同じようなAPIを持っています。
hash = Digest::SHA256.new
hash.update 'xyz'
hash.hexdigest
ハッシュをインクリメンタルに計算したい場合
関連
-
Pythonコンテナのための組み込み汎用関数操作
-
Python Decorator 練習問題
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Pythonが解釈される場合、.pycファイルとは何ですか?
-
[解決済み] Pythonの「名前付きタプル」とは何ですか?
-
[解決済み】RubyにあってPythonにないもの、またその逆は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Python カメの描画コマンドとその例
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
任意波形を生成してtxtで保存するためのPython実装
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない