XORによる暗号化プログラムを作成するには?


モモ  2006-04-23 05:22:12  No: 131082

■VBのバージョン : VB6
サーバPHPとクライアントVBとの間でテキストファイルをやり取りするため
暗号化(PHP、VBそれぞれで暗号、復号が必要)をしたいと思っています。
PHP側を仮に
http://itpro.nikkeibp.co.jp/article/COLUMN/20060131/228211/?SS=imgview&FD=-672285391
と同じコードとした場合、VBでは具体的にどのように書けばよいか分かりません。
何卒よろしくお願い致します。


いはら  2006-04-23 07:15:40  No: 131083

リンク先の暗号化しているところの処理の意味は理解していますか?
それが分かっていれば、こんな質問の仕方にはならないだろうけど。


モモ  2006-04-23 07:30:48  No: 131084

レスありがとうございます。
質問の仕方が不適切でしたようで申し訳ございません。
処理内容は理解しており、自力でいろいろ書いてみたりしましたが、
PHPとは違い、変数の型でエラーが出たり、
サンプルのように文字列全体を一度に暗号化出来るのかどうかも
不明で、結局出来ませんでした。
本当に申し訳ございません。
そもそもVBの場合は1文字ずつの処理になるのでしょうか?
暗号化の部分だけでも教えて頂ければ幸いです。
よろしくお願い致します。


ガッ  2006-04-23 08:02:17  No: 131085

なんか他のところでも同じような投稿みた希ガスるけど、酔っててよく思い出せない。

とりあえず何か書いておきますね

public function XorString(byval s as string,byval seed as byte) as byte()
dim i as long
dim ret() as byte
if lenb(s)=0 then exit function
'文字列をShift-JIS(?)にする
ret=strconv(s,vbfromunicode)
'文字列を暗号化する
for i=lbound(ret) to ubound(ret)
    ret(i)=ret(i) xor seed
next
'戻り値にする
XorString=ret
end function

動くかわかりません


モモ  2006-04-23 08:41:09  No: 131086

早速のレスありがとうございます。
1歩前に進みました。
今度は復号化についてなのですが、
1バイト文字と2バイト文字が混在する場合、
どのように戻せばよいか分かりません。
何度も申し訳ございませんが、
何卒よろしくお願い致します。


ガッ  2006-04-23 08:56:33  No: 131087

public function XorByte(byref data() as byte,byval seed as byte) as String
dim i as long
'文字列を復号する
for i=lbound(data) to ubound(data)
    data(i)=data(i) xor seed
next
'戻り値にする
XorByte=strconv(data,vbunicode)
end function

動くかわかりません


報告  2006-04-23 09:30:29  No: 131088

一応貼ります
http://www.gizshare.com/vbtomo/boards/vbqanda.php?do=leaf&num=13188


モモ  2006-04-23 17:57:40  No: 131089

たびたびのレス本当にありがとうございます。
最後にXorByteへのパラメータの渡し方が良く分かりません。
XorByteのdata()に対して、暗号状態の文字列をどのように記述すれば
よいのですか?
コンパイルエラーになってしまいます。
よろしくお願い致します。


モモ  2006-04-23 18:02:39  No: 131090

自己レスです。
http://www.interq.or.jp/www-user/komurak/progtec/015.htm
に方法がありました。
ガッ様の親切なご指導に心より感謝致します。
本当にありがとうにありがとうございました。


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




  


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