「自分の為のメモ帳」ご利用は自己責任で!、↓↓↓記事・ツール等へのコメントは一括して掲示板へお願いします

参考
C#を攻略しよう様
http://www.kisoplus.com/sample2/key.htmll
暗号化
2012/06/07記事作成、引用



鍵を使って文字を暗号化する
鍵がわからないと復号化できない
using System;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //暗号化ボタン
        private void button1_Click(object sender, EventArgs e)
        {
            textBox3.Text = Encryption(textBox2.Text, textBox1.Text);
        }

        /// <summary>
        /// 暗号化
        /// </summary>
        /// <param name="byt">暗号化する文字</param>
        /// <param name="kye">鍵</param>
        /// <returns>暗号化した文字</returns>
        private string Encryption(string byt, string kye)
        {
            // 文字をbyteに変換 
            byte[] _byt = Encoding.ASCII.GetBytes(byt);
            byte[] _key = Encoding.ASCII.GetBytes(kye);

            int j = 0; string str = "";
            //_bytの要素分繰り返す
            for (int i = 0; i < _byt.Length; i++)
            {
                //_keyが_bytより要素数が少ないときのため
                if (j < _key.Length)
                {
                    j++;
                }
                else
                {
                    j = 1;
                }
                //xorで暗号化
                _byt[i] = (byte)(_byt[i] ^ _key[j - 1]);
                //3ケタにして追加していく
                str += string.Format("{0:000}", _byt[i]);
            }
            return str;
        }

        //復号化ボタン
        private void button2_Click(object sender, EventArgs e)
        {
            textBox6.Text = Decryption(textBox5.Text, textBox4.Text);
        }

        /// <summary>
        /// 復号化
        /// </summary>
        /// <param name="byt">復号化する文字</param>
        /// <param name="key">鍵</param>
        /// <returns>復号化された文字</returns>
        private string Decryption(string byt, string key)
        {
            // 文字をbyteに変換
            byte[] _key = Encoding.ASCII.GetBytes(key);
            
            //3ケタで区切ったので文字数の1/3のbyte配列を用意する
            byte[] _byt = new byte[byt.Length / 3];
            //文字数の1/3回繰り返す
            for (int a = 0; a < byt.Length / 3; a++)
            {
                //3ケタづつbyte変換して格納する
                _byt[a] = byte.Parse(byt.Substring(a * 3, 3));
            }

            int j = 0;
            //_bytの要素分繰り返す
            for (int i = 0; i < _byt.Length; i++)
            {
                //_keyが_bytより要素数が少ないときのため
                if (j < _key.Length)
                {
                    j++;
                }
                else
                {
                    j = 1;
                }
                //xorで復号化
                _byt[i] = (byte)(_byt[i] ^ _key[j - 1]);
            }
            //byteを文字列に戻す
            return Encoding.ASCII.GetString(_byt);
        }
    }
}

wikiチェック日

wiki主のwikiをチェックした日
(コメント・掲示板・ランキング等)

●2014/07/28
●2014/04/15
●2014/03/22
●2014/03/16
●2014/02/25
(直近5日)

※連休が続く時は
 見ていない場合が多いです
※最終日よりあまり日が長い場合は
 掲示板等の返信が遅れる・
 返信がない場合があります
※wikiを更新した日ではありません

メインメニュー

条件分枝文
繰返文
  • for文
  • while文
  • foreach文
  • goto/break/continue

作ったーツール紹介

その他

  • 記事なし

ニコニコ生放送用
コメントビューア

アンコちゃんプラグイン

(スクリーンショットと設定text内容のみ)

NCVプラグイン

(スクリーンショットと設定text内容のみ)
プラグイン作成
NCVα127より.NETframeworkが4.0になっています ↑手順6)の対象のフレームワークを.NET Framework 4.0に

アップローダー

作ったツールがアップされています
プログラムの試作
パスはそれぞれのコメントへ
※ほとんど日付です
ツールへの質問は当wiki掲示板へ

管理人/副管理人のみ編集できます