暗号化形式は、何でもかまいません。
暗号化ソフトの作り方の手順と解説、できればソースコードをお願いします。
暗号化ソフトを作った御方大歓迎です。
できればソースコードをお願いします。
暗号化ソフトのつくりかた
暗号化は文字コードをずらすことによって実現できます。
例:文字コードを 3 ずらすと、
"abcdef"が"defghi"になります。
これで、lpstrの文字の内容が全く別の文字列になります。
256の余りを代入しているのは、オーバーフローを防ぐためです。
複合化は、これの逆、上のコードの場合では3を引いてやればいいわけです。
もちろん、これは簡単な暗号なので、すぐに破られてしまうことでしょう。
どんな暗号が破られにくいかを、自分でいろいろと試してみてください。
例:文字コードを 3 ずらすと、
"abcdef"が"defghi"になります。
コード: 全て選択
'簡単な暗号(文字コードを3ずらす)
Dim lpstr[10] As Byte
lstrcpy(lpstr, "abcdefghij")
Dim i As Long
For i = 0 To ELM(10)
lpstr = (lpstr + 3) mod 256
Next
これで、lpstrの文字の内容が全く別の文字列になります。
256の余りを代入しているのは、オーバーフローを防ぐためです。
複合化は、これの逆、上のコードの場合では3を引いてやればいいわけです。
コード: 全て選択
'複合化(文字コードを3ずらす)
Dim lpstr[10] As Byte '複合化する文字列
Dim i As Long
For i = 0 To ELM(10)
If lpstr - 3 < 0 Then
lpstr = 256 - (lpstr - 3)
Else
lpstr = lpstr - 3
End If
Next
もちろん、これは簡単な暗号なので、すぐに破られてしまうことでしょう。
どんな暗号が破られにくいかを、自分でいろいろと試してみてください。
3文字ずらすって
3文字ずらすのってたしかシーザー/カエサル(Caesar)暗号ですよね。
僕も少し前暗号化ソフトを作る時に参考にしたので覚えてますが、鍵空間(鍵として考えられる鍵の可能性の数)が8bitととても狭いので、実用的には使い物にはなりません。
でも、応用は出来ます。
例
①特殊なアルゴリズムで精度の良い擬似乱数を出力
②その数値を使って1バイト暗号化
③アルゴリズムをもう一度動かし、次の擬似乱数を得る
④文字列全体に暗号化がかかるまで②に戻る
とか、ビット関数Xorは二度使うと元の数値に戻る事から、②番の暗号化の方式を足し算引き算ではなくビット関数で行うとか。
というより、僕は暗号化ソフトを作った事があったりします。そしてホームページに載ってたりもします。
http://web1.nazca.co.jp/himajinn13sei/8.zip
(ソースコード含)
403でうまく開けなかったらF5を押してみてください。
分からない部分があったら訊いて下さい。
アルゴリズム本体に対しての詳しい質問はご勘弁^^;
僕も少し前暗号化ソフトを作る時に参考にしたので覚えてますが、鍵空間(鍵として考えられる鍵の可能性の数)が8bitととても狭いので、実用的には使い物にはなりません。
でも、応用は出来ます。
例
①特殊なアルゴリズムで精度の良い擬似乱数を出力
②その数値を使って1バイト暗号化
③アルゴリズムをもう一度動かし、次の擬似乱数を得る
④文字列全体に暗号化がかかるまで②に戻る
とか、ビット関数Xorは二度使うと元の数値に戻る事から、②番の暗号化の方式を足し算引き算ではなくビット関数で行うとか。
というより、僕は暗号化ソフトを作った事があったりします。そしてホームページに載ってたりもします。
http://web1.nazca.co.jp/himajinn13sei/8.zip
(ソースコード含)
403でうまく開けなかったらF5を押してみてください。
分からない部分があったら訊いて下さい。
アルゴリズム本体に対しての詳しい質問はご勘弁^^;
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。