またお世話になりますm( __ __ )m
PEAR の BlowFish を用いての暗号化、復号化についての質問です。
例えば、"hello" という文字列を暗号化します。
そして、
$_str = $_blowfish->decrypt($_crypt_str);
と復号した時に、
取得した文字列 $_str は 8byte に満たない部分が \0 で埋まってきます。すなわち "hello\0\0\0" となります。
ちなみに "hello_World" を暗号化して復号すると "hello_World\0\0\0\0\0" となります。
私が調べた限りでは、8byte で割り算した余りの部分が \0 で埋められてくるという仕様?なのかバグなのからしいです。
とりあえずそのままでは使い物にならないので、
$_trim_str = rtrim($_str);
として、一応期待通りの動きをしていますが、こういう安易な使い方でよろしいのでしょうか?
そもそも復号文字列が 8 byte 余り部分を \0 で埋めてくるなどと言うのは私の使い方が間違っているかと疑わざるをえません。
どなたかご存知の方いましたらこの辺のモヤモヤをスッキリさせていただけませんでしょうか?
ちなみに暗号化モードは CBC で、初期化ベクトルは 8 byte です。
No.2ベストアンサー
- 回答日時:
の真ん中より下の方に
>で、ここで注意しなきゃいけないのは、
>暗号化する文字列は8の倍数桁じゃないとダメってトコ。
>つまり、6文字の場合は+2バイト、12文字の場合は+4バイト分
>パディング(文字埋め)してあげないといかんのです。
とあります。
また、こちらはPerlのBlofishの説明ですが、
http://perldoc.jp/docs/modules/Crypt-Blowfish-2. …
「注意」に
>8バイトよりも多く暗号化しないのであれば、あなたのデータは 正確に長さ8バイトでなければなりません。必要であれば独自にパディングしてください。
とあります。
なので正常な動作のようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
char str[256]の256の意味は?
-
VB.NET LeftBの代用
-
10Mバイトて文字数に すると何...
-
3バイト文字(UTF-8)をprintfで...
-
URLは最高何文字まで可能なので...
-
VB6でのファイルサイズ取得につ...
-
Javaで日本語1文字のバイト数
-
COBOLのCOMP形式について
-
【VB2005】テキストボックス内...
-
バイト列とバイナリ列の違いが...
-
memcmp バイナリデータの比較方法
-
文字数を取得したい
-
HDMLのcgi呼び出し時について
-
2バイト文字の判定はString#get...
-
文字コードの使い分けについて
-
エクセルで2byte文字を含むセル...
-
Shift_JISからUTF-8への変換に...
-
UTF-8とUTF-16およびUTF-32につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
エクセルシート名の制限を変更...
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
バイト列とバイナリ列の違いが...
-
ビットスワップとバイトスワッ...
-
VBAでShift-JISのURLエンコード
-
ピクセル,dpiから容量(バイト...
-
「1TB」のHDDに日本語は何字入...
-
SQLで1バイト、2バイト混在...
-
バイナリとBCDコード
-
Javaで日本語1文字のバイト数
-
UCS-2の一覧表が欲しい
-
3バイト文字(UTF-8)をprintfで...
-
:(コロン)のKeyCode
-
【VB2005】テキストボックス内...
-
64bit対応
-
URLは最高何文字まで可能なので...
-
機種依存文字をチェックしたい。
おすすめ情報