BlowFishでエンコード・デコードするには?

解決


初心者Z  2005-03-09 23:28:35  No: 13679

文字列をBlowFishで暗号化したいと思ってます。
BlowFishで文字列をエンコード・デコードするにはどうしたらいいでしょうか?Delphi6Personalです


ふぐちゃん  2005-03-09 23:33:52  No: 13680

こちらの「暗号化 BlowFish アルゴリズム Delphi移植版」はいかがですか?
http://kuma.webj.net/


にしの  2005-03-09 23:37:04  No: 13681

BlowFishって、ライセンスフリーの暗号化アルゴリズムですよね。
Delphiに標準では含まれなかったと思います。

http://www.schneier.com/blowfish.html
こちらに、C,C++,C#,Java,VBなどのソースをダウンロードできるリンクがあります。
Forthなんてマイナー言語に対応しているのに、Pascal言語のソースがないですが^^;
# C++のソースが付いているようなので、移植してみようかな

他にも、Googleで探せばたくさん見つかるかと思います。
どこかでコンポーネントが落ちていたのを見かけた気がします。


にしの  2005-03-09 23:59:16  No: 13682

ありゃ、作った人がすでにいるんですね。
見つけきれませんでした。


初心者Z  2005-03-10 00:31:47  No: 13683

これ  さっきから使ってみてるんですけどね・・
なかなかうまくいかなくて・・


りんご  2005-03-10 04:12:45  No: 13684

以前はにしのさんの紹介されたHPにPascal版もありましたが、
今は、なんらかの事情で公開を取りやめているようですね。
何か実装に注意点があるようなことが書いてあったので、
それをクリアできていなかったのが判明したのかもしれません。

>初心者Zさん
そういうのを情報の出し渋りと言ってとても嫌われます。
そういうことは最初に言いましょう。
そして、せっかくご紹介して頂いているのですからお礼をいいましょう。
回答する人の気持ちになって発言してください。


通りすがり  2005-03-10 06:55:39  No: 13685

>なかなかうまくいかなくて・・
readme.txtに使用方法が書いてありますよ。
これで十分だと思うんだけど。。


初心者Z  2005-03-10 12:38:31  No: 13686

>りんごさん
すいません。
ご回答をくださった方にも大変失礼な発言をしてしまい、反省しています。
今後発言に気をつけたいと思います。

暗号化 BlowFish アルゴリズム Delphi移植版でがんばってみますね!
ご回答頂いたかたありがとうございました。


初心者Z  2005-03-10 12:39:07  No: 13687

あ、解決を忘れてました(^^;


初心者++  2005-03-23 00:05:11  No: 13688

1、uses に BlowFish, CryptUtils を追加

2、「Button」と「Edit」×3をを配置
  Button1:暗号化実行ボタン
  Edit1:暗号化する文字列
  Edit2:暗号化した文字列
  Edit3:復号された文字列

3、Button1のOnClickイベント↓
------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
const
  Key = 'ABCDEFG';
  IV: array [0..1 - 1] of Int64 = ($1234567890123456);
var
  Src, Dst: string;
  Size: Integer;
begin
  Src := Edit1.Text;
  with (TCryptCBC.Create(Key, TBlowFish.Create, IV, SizeOf(IV), pmStandard)) do
  try
    Size := Length(Src);
    SetLength(Dst, OutputSize(Size));
    {暗号化}
    Size := Encode(Src[1], Dst[1], Size);
    Edit2.Text := Dst;
    {復号}
    Size := Decode(Dst[1], Dst[1], Size);
    SetLength(Dst, Size);
    Assert(Src = Dst);
    Edit3.Text := Dst;
  finally
    Free;
  end;
end;
------------------------------------------------------------

readme.txtを少し改変してみました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加