HSP Source

■暗号化(バイナリ方法) 注意:HSP2.55以前用です

;以下ソースです。(暗号化)=======================================================
sdim data,2500
datasize=0
src=0
dst=0
data="暗号化したい文章orデータをここに読み込みます"

dialog "暗号化\n元の文章:"+data

strlen datasize,data  ;dataのサイズを調べる

repeat datasize,0
  peek src,data,cnt  ;変数dataのcntのところをsrcへ読み込む
  ;暗号化アルゴリズム=========
  dst=($12+(src^dst))^$b6 ;計算式(元の文>暗号)
  dst=dst+256&255  ;dstが255をオーバーしないようにする。
  ;=========================

  poke data,cnt,dst  ;変数dstを変数dataのcntのところへ書き込む
loop

dialog "暗号化\n暗号化された文章:"+data


;復元する。====================================================================
datasize=0
src=0
dst=0
dst2=0
;暗号化の復元なので前に暗号化したdataを使用

dialog "復元\n暗号化されている文章:"+data

strlen datasize,data  ;dataのサイズを調べる

repeat datasize,0
  peek dst,data,cnt  ;変数dataのcntのところをdstへ読み込む
  ;暗号化アルゴリズム=========
  src=((dst^$b6)-$12)^dst2 ;計算式(暗号>元の文)
  dst2=dst
  scr=scr+256&255  ;scrが255をオーバーしないようにする。
  ;=========================

  poke data,cnt,src  ;変数srcを変数dataのcntのところへ書き込む
loop

dialog "復元\n復元された文章:"+data

stop

解説:
 一般的によくつかわれている暗号化。実はHSPでも暗号化はできます。
 簡易暗号化ですがふつうに見ただけでは分からないでしょう。
 (解析などの努力をしたら別ですよ。)
 なお、暗号化によくつかわれている「A^B=C」以外にも「A&B=C」や「A|B=C」がHSPではできますよ〜。(^^♪
 &とか|とかは、詳しくは他のサイトさんへ...

 なお、これは変数dataの中にある文字列を変数dataへ暗号化します。
 (バイナリで書き込むため暗号化後のサイズは暗号化前と同じです。)
 (暗号化アルゴリズムのところはピンク色にしています。)