• 締切済み

c言語での暗号

先日友人からc言語で暗号が作れるという話をききました シーザー暗号なんかもすごい興味深いなと思いました でも3文字ずらす(合ってましたっけ)程度じゃすぐ解読されちゃうと思うんですよね そこで思ったのですが 何文字目は何文字ずらすみたいな暗号プログラムは作れたりするのでしょうか? たとえば「goo」だったら 1文字目のgは1文字ずらしてh 2文字目のoは2文字ずらしてq 3文字目のoは3文字ずらしてr 「goo→hqr」といったような感じです。(zはaに戻るとします 「zzz→abc」) 調べてみたのですが http://okwave.jp/qa/q3483673.html は可能だったのでうまく応用すればできるのかなと思いました。 実は友人はまだc言語習いたてみたいで、わからないといっていたのでここで質問させていただきました。 もしよろしければそのプログラムを教えていただけないでしょうか。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

その質問のものは 「N文字目はNずらす」というものですから、「N文字目はmずらす」にすればいいわけです。 そのURLの#3のプログラムで c += n + 1; となっているところが 「N文字目はNずらす」の処理ですから、 m = なんかの計算か、テーブル参照結果 ; c += m ; という風にします。 例えば、元のURLにある「N文字目はNずらす」だったら m = n + 1 ; です。 # このプログラム中ではnは0から始まるので、N文字目=(n+1)文字目になる このプログラム自体は、非常に簡単なものです。 勉強中ということなので、ヒントだけに留めます。(ほとんど答えとも言えますが)

healthewo
質問者

お礼

すいません、charを使わないでというのは間違えました。

healthewo
質問者

補足

早いご回答ありがとうございます。 申し訳ありませんが、うまく機能しないみたいです。 charを使わないで使う方法ってありませんか? URLの中にはcharを使ってないものもあったと思います。