- 締切済み
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言語習いたてみたいで、わからないといっていたのでここで質問させていただきました。 もしよろしければそのプログラムを教えていただけないでしょうか。
- healthewo
- お礼率66% (8/12)
- C・C++・C#
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
その質問のものは 「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)文字目になる このプログラム自体は、非常に簡単なものです。 勉強中ということなので、ヒントだけに留めます。(ほとんど答えとも言えますが)
関連するQ&A
- プログラミング シーザー暗号 複合化 C言語
プログラミング シーザー暗号 複合化 Linux C言語 シーザー暗号を複合化するプログラムを教えてください! 大文字と小文字が混合の文字列で3つずらして複合化したいです 文字数が28字などでは収まらないくらいあります それをふまえたプログラムを教えてください よろしくお願いします
- 締切済み
- その他(プログラミング・開発)
- シーザー暗号
シーザー暗号を解読するプログラムを作るのですが、そもそもプログラムをつくる前に課題のSURJUDPが何文字前後にずらしてるのかわかりません。 どなたか解読いただけないでしょうか。
- 締切済み
- その他([技術者向] コンピューター)
- c言語 暗号化のプログラム
大文字アルファベットの文字列を暗号化するプログラムを作りたいのですが、どうやったら暗号化するのかわかりません。 暗号化は文字をずらして行います。 ABC→BDF Aは1文字目なので一文字ずらしてB Bは2文字目なので二文字ずらしてD Cは3文字目なので三文字ずらしてF わからないのは文字のをどうやってずらすのかです。 ヒントだけでもいいので・・・
- 締切済み
- C・C++・C#
- C言語 暗号化について
暗号化について勉強しているのですが、奇数文字+1、偶数文字-1にするときは、#include <stdio.h> #include <stdlib.h> #include <ctype.h> char myislower(char c) { if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){ if(c % 2 == 1){ c = c+1; }else{ c = c-1; } } return c; } このプログラムでやりたいのですが、エントリーポイントを定義しなければなりません、とエラーがででしまいます。どうしたらいいでしょうか?
- ベストアンサー
- C・C++・C#
- C言語で簡単暗号
C言語を初めてけっこう立つんですが。 自分なりにソフトを作ってみました 暗号化、解読ができるソフトです 1.暗号化 2.解読 3.Quit ソースは #include <stdio.h> int main(void) { int i; char da; back: modo: do{ printf("1.angouka\n"); printf("2.kaidoku\n"); printf("3.Quit\n"); scanf("%d",&i); }while(i<1 || i>3); if(i==1){ da=getchar(); while(da){ printf("%c",da+1); da=getchar(); if(da=='.'){ goto modo; } } } else if(i==2){ da=getchar(); while(da){ printf("%c",da-1); da=getchar(); if(da=='.'){ goto back; } } } return 0; } なんですが。感想などここはこうした方が良いなどと教えてもらいたいんですが。 もっと簡潔にかけて破かれにくい暗号を書くにはどうしたらいいでしょう 教えて下さい
- 締切済み
- C・C++・C#
- C言語のプログラミングについて
C言語のプログラミングについて プログラミング初心者です。下のプログラムに詰まりました。 下のプログラムをfgets()、atoi()の組とgetchar()を用いて表示するにはどのようなプログラムを書けばよろしいのでしょうか? % ./descending 正の整数: 10 英文字: z 1: z 2: y 3: x 4: w 5: v 6: u 7: t 8: s 9: r 10: q %
- 締切済み
- その他(インターネット・Webサービス)
- ASP(+COM)で使用できる、暗号化・暗号解読ツールってありますか
ASP(+COM)で使用できる、暗号化・暗号解読ツールってありますか? BASP21で暗号化するメソッドがあったのですが、暗号は出来ても解読は不可能でした(MD5メソッド)。 上記のような暗号化・解読の機能を満たしたBASP21のようなツールは存在するのでしょうか。 実績がある方のみご教授ください。 宜しくお願いします。 暗号化する文字列。 a~z,A~Z,0~9 のみです。
- 締切済み
- Microsoft ASP
- C言語 暗号化プログラムの作成
アルファベット文字列を暗号化するプログラムを作りたいのですが、暗号化の方法がわかりません。 暗号化は、アルファベット文字列を入力した後、数字を入力して、その数字分文字をずらすというものです。 例:"Date 5"⇒"Ifyj 5" (Dの5個先はIなのでIとする。 同様にa⇒f t⇒y e⇒j) "Take 20"⇒"Muey 20" (Zを過ぎたらまたAからずらしていく。)
- 締切済み
- C・C++・C#
- C言語、リダイレクト
C言語の初心者です。 コマンドプロンプトで「./a.out <text.txt」とうつと、text.txtのデータを取得し、表示するプログラムをつくろうと思っています。 試行錯誤の結果 #include <stdio.h> main(){ char abc; scanf("%s",&abc); printf("%c",abc); } だとエラーもなくコンパイルできるのですが、肝心のファイルの中身が一文字までしか表示されません。 これはchar abcでabcを一文字だけの変数にしているからみたいですが、調べてみたのですがどうもここから先に進めません。 どこをどのように変えれば良いですか?お願いします。
- ベストアンサー
- C・C++・C#
お礼
すいません、charを使わないでというのは間違えました。
補足
早いご回答ありがとうございます。 申し訳ありませんが、うまく機能しないみたいです。 charを使わないで使う方法ってありませんか? URLの中にはcharを使ってないものもあったと思います。