// 乱数を発生する
public static uint random(uint n)
{ return (n * 5041 + 13); }
|
// 30(48)~ FF(255)の変換テーブルを作成
public static void shuffle(uint val)
{
uint i, j;
for (i=0; i<208; i++) m_et[i] = 0;
for (i=0, j=val; i<208; i++)
{
for(j=random(j)%208; m_et[j]!=0; j=(j+1)%208) ;
m_et[j] = (byte)(i+48);
}
}
|
// Encode
public static void encode(char[] msg)
{
char chr;
byte* byt;
byt = (byte*)&chr;
for(int i=0; i<msg.GetLength(0); i++)
{ chr = msg[i];
e_cvt(byt);
msg[i] = chr;
}
}
// byte 変換
public static void e_cvt(byte* pt)
{
for (int i=0; i<sizeof(char); i++)
{
if (*(pt+i)>=48) *(pt+i) = m_et[*(pt+i)-48];
}
}
|
using System;
using System.IO; // for File, StreamReader
using System.Text; // for Encoding
unsafe class console
{
static string m_str=
"0189abcxyzABCXYZ!#$%&'()=~|`{+*}<>?_\n01abABあいアイ\n日月火水木金土小吉女房沢口康子声捜査官智代美";
static byte[] m_et = new byte[208];
public static void Main()
{
StreamWriter writer;
uint val = 123;
shuffle(val);
char[] msg = m_str.ToCharArray();
Console.WriteLine(msg);
encode(msg);
Console.WriteLine(msg);
string str = new string(msg);
writer = new StreamWriter("C:\\TMP\\encode.txt", false, Encoding.UTF8);
writer.Write(str);
writer.Close();
Console.ReadLine();
}
|
[Next Chapter ↓] TEXT の複合化
※・