[java]代码库
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;
/**
* This class can take a variable number of parameters on the command
* line. Program execution begins with the main() method. The class
* constructor is not invoked unless an object of type 'FormIDEAwindow'
* created in the main() method.
*/
public class FormIDEAwindow extends Form
{
public static int MtoCorCtoM; //加密或脱密类型:0为加密
public static final int TYPE_M_TO_C = 0; //代表加密的常量
public static final int TYPE_C_TO_M = 1; //代表脱密的常量
public static final int maxim=65537; //常量2的16次方加1,即65537
public static final int fuyi=65536; //常量2的16次方,即65536
public static final int one=65535; //常量65535,即低16位为1的整型
public static final int round=8;
int group; //正在进行的分组组数
Count16[] count16MorC; //16进制的明文或密文数组
String strCorM = new String(""); //16进制的明文或密文的字符串保存形式
char[][] Z = new char[7][10]; //加密密钥:Z[4][6]表示第6圈的第4个加密密钥
char[][] DK = new char[7][10]; //脱密密钥:DK[2][9]表示第9圈即输出变换圈的第2个脱密密钥
char[] XX = new char[5]; //128比特的明文或密文表示形式
char[] userKey = new char[9]; //用户输入的128位初始密钥
public FormIDEAwindow()
{
super();
// Required for Visual J++ Form Designer support
initForm();
// TODO: Add any constructor code after initForm call
}
/**
* FormIDEAwindow overrides dispose so it can clean up the
* component list.
*/
public void dispose()
{
super.dispose();
components.dispose();
}
private void menuItemIDEABegin_click(Object source, Event e) //开始按钮
{
if(menuItemIDEABegin.getText().equals("重来"))
{
super.dispose();
components.dispose();
Application.run(new FormIDEAwindow());
}
else
{
panelIDEA.setVisible(false);
labelIDEAInstruction.setVisible(true);
labelIDEAInputMorC.setVisible(true);
labelIDEAMorClength.setVisible(true);
richEditIDEAInputMorC.setVisible(true);
labelIDEAInputK.setVisible(true);
labelIDEAKlength.setVisible(true);
richEditIDEAInputK.setVisible(true);
labelIDEACheckInputMorC.setVisible(true);
labelIDEACheckInputK.setVisible(true);
buttonIDEACalculate.setVisible(true);
labelIDEAKResult.setVisible(true);
richEditIDEAKResult.setVisible(true);
labelIDEAResult.setVisible(true);
richEditIDEAResult.setVisible(true);
menuItemIDEABegin.setText("重来");
if(MtoCorCtoM == TYPE_M_TO_C)
{
labelIDEADataFillType.setVisible(true);
labelIDEAChangeDataFillType.setVisible(true);
buttonIDEAChangeDataFillType.setVisible(true);
labelIDEAInstruction.setText("这个程序用来进行IDEA分组密码算法的加密运算");
labelIDEAInputMorC.setText("请输入初始明文");
labelIDEAInputK.setText("请输入用户密钥");
buttonIDEACalculate.setText("加密");
labelIDEAKResult.setText("生成密钥");
labelIDEAResult.setText("生成密文:");
}
else
{
labelIDEAInstruction.setText("这个程序用来进行IDEA分组密码算法的脱密运算");
labelIDEAInputMorC.setText("请输入初始密文");
labelIDEAInputK.setText("请输入用户密钥");
buttonIDEACalculate.setText("脱密");
labelIDEAKResult.setText("生成密钥");
labelIDEAResult.setText("生成明文:");
}
}
}
private void menuItemIDEABack_click(Object source, Event e) //返回按钮
{
super.dispose();
components.dispose();
Application.run(new Form1());
}
private void menuItemIDEAExit_click(Object source, Event e) //退出按钮
{
int result = MessageBox.show("感谢使用本软件。\n你真的要退出本程序吗?","密码学算法软件",MessageBox.OKCANCEL+MessageBox.ICONQUESTION+MessageBox.DEFBUTTON1);
if(result==DialogResult.OK)
{
super.dispose();
components.dispose();
Application.exit();
}
else
{
}
}
private void richEditIDEAInputMorC_textChanged(Object source, Event e) //显示输入明密文长度
{
labelIDEAMorClength.setText("长度:"+richEditIDEAInputMorC.getText().length()+",即"+richEditIDEAInputMorC.getText().length()*4+"bit");
}
private void richEditIDEAInputK_textChanged(Object source, Event e) //显示输入密钥长度
{
labelIDEAKlength.setText("长度:"+richEditIDEAInputK.getText().length()+",即"+richEditIDEAInputK.getText().length()*4+"bit");
}
private void buttonIDEAChangeDataFillType_click(Object source, Event e) //加密时需改变数据填充类型
{
comboBoxIDEAChangeDataFillType.setVisible(true);
buttonIDEAChangeDataFillType.setVisible(false);
buttonIDEACalculate.setEnabled(false);
}
private void comboBoxIDEAChangeDataFillType_selectedIndexChanged(Object source, Event e)
{
if((String)comboBoxIDEAChangeDataFillType.getSelectedItem() != null) //选择填充方式
{
buttonIDEACalculate.setEnabled(true);
}
}
private void key(char[] usekey) //生成加密密钥
{
if(usekey.length==9)
{
char[] S = new char[52];
int i,j,r;
for(i=1;i<9;i++) //S[1],S[2],……S[8]
{
S[i-1]=usekey[i];
}
for(i=8;i<52;i++)
{
if((i+2)%8==0) //S[14],S[22],……
{
S[i]=(char)(((int)((char)((int)S[i-7]<<9))^(int)((char)((int)S[i-14]>>7)))&one);
}
else
{
if((i+1)%8==0) //S[15],S[23],……
{
S[i]=(char)(((int)((char)((int)S[i-15]<<9))^(int)((char)((int)S[i-14]>>7)))&one);
}
else
{
S[i]=(char)(((int)((char)((int)S[i-7]<<9))^(int)((char)((int)S[i-6]>>7)))&one);
}
}
}
for(r=1;r<=round;r++) //形成加密密钥Z
{
for(j=1;j<=6;j++)
{
Z[j][r]=S[6*(r-1)+j-1];
}
}
if(r==round+1)
{
for(j=1;j<=4;j++)
{
Z[j][r]=S[6*(r-1)+j-1];
}
}
}
}
private void de_key(char[][] Zkey) //生成脱密密钥DK
{
if(Zkey.length==7&Zkey[0].length==10)
{
int i,j;
for(j=1;j<=round+1;j++)
{
DK[1][round-j+2]=(char)Maths.inverse((int)Zkey[1][j],maxim);
DK[4][round-j+2]=(char)Maths.inverse((int)Zkey[4][j],maxim);
if(j==1||j==round+1)
{
DK[2][round-j+2]=(char)((fuyi-(int)Zkey[2][j])&one);
DK[3][round-j+2]=(char)((fuyi-(int)Zkey[3][j])&one);
}
else
{
DK[2][round-j+2]=(char)((fuyi-(int)Zkey[3][j])&one);
DK[3][round-j+2]=(char)((fuyi-(int)Zkey[2][j])&one);
}
}
for(j=1;j<=round+1;j++)
{
DK[5][round+1-j]=Zkey[5][j];
DK[6][round+1-j]=Zkey[6][j];
}
}
}
private void keyPrint(char[][] Key) //加脱密密钥打印
{
int i,j,k;
String strK;
Count16[] count16print = new Count16[4];
for(i=0; i<4; i++)
{
count16print[i] = new Count16();
}
strK = " ";
for(i=1; i<7; i++)
{
if(MtoCorCtoM==TYPE_M_TO_C)
{
strK = strK+" Z"+i+" ";
}
else
{
strK = strK+" U"+i+" ";
}
}
for(i=1; i<9; i++)
{
strK = strK+"第"+i+"圈: ";
for(j=1; j<7; j++)
{
count16print = Count16.shortToCount16(Key[j][i]);
for(k=0; k<4; k++)
{
strK = strK+count16print[k].gethex();
}
if(j<6)
{
strK = strK+" ";
}
}
}
strK = strK+"第"+i+"圈: ";
for(j=1; j<5; j++)
{
count16print = Count16.shortToCount16(Key[j][i]);
for(k=0; k<4; k++)
{
strK = strK+count16print[k].gethex();
}
if(j<4)
{
strK = strK+" ";
}
}
richEditIDEAKResult.setText(strK);
}
private void buttonIDEACalculate_click(Object source, Event e) //加密或脱密计算按钮
{
int col,row;
boolean rightInput = false;
String strMorC;
String strK;
strMorC = richEditIDEAInputMorC.getText();
strK = richEditIDEAInputK.getText();
if(strMorC.equals("")|strK.equals("")) //明密文或密钥为空
{
}
else
{
char[] chMorC = new char[strMorC.length()];
char[] chK = new char[strK.length()];
chMorC = strMorC.toCharArray();
chK = strK.toCharArray();
for(col=0; col<chMorC.length; col++)
{
if(chMorC[col]< '0'|(chMorC[col]> '9'&chMorC[col]< 'A')|chMorC[col]> 'F') //检测输入合法性
{
if(MtoCorCtoM == TYPE_M_TO_C)
{
if(chMorC[col]==' ')
{
labelIDEACheckInputMorC.setText("明文中第"+(col+1)+"位字符是空格,请删除");
}
else
{
labelIDEACheckInputMorC.setText("明文中第"+(col+1)+"位字符不合法");
}
}
else
{
if(chMorC[col]==' ')
{
labelIDEACheckInputMorC.setText("密文中第"+(col+1)+"位字符是空格,请删除");
}
else
{
labelIDEACheckInputMorC.setText("密文中第"+(col+1)+"位字符不合法");
}
}
rightInput = false;
break;
}
}
if(col==chMorC.length)
{
labelIDEACheckInputMorC.setText("");
}
for(row=0; row<chK.length; row++)
{
if(chK[row]< '0'|(chK[row]> '9'&chK[row]< 'A')|chK[row]> 'F')
{
if(chK[row]==' ')
{
labelIDEACheckInputK.setText("密钥中第"+(row+1)+"位字符是空格,请删除");
}
else
{
labelIDEACheckInputK.setText("密钥中第"+(row+1)+"位字符不合法");
}
rightInput = false;
break;
}
}
if(row==chK.length)
{
labelIDEACheckInputK.setText("");
}
if(col==chMorC.length & row==chK.length)
{
rightInput = true;
}
if(chK.length!=32) //长度检测
{
labelIDEACheckInputK.setText("密钥长度必须为128bit,即32个字符");
rightInput = false;
}
if(MtoCorCtoM==TYPE_C_TO_M && chMorC.length%16!=0)
{
labelIDEACheckInputMorC.setText("密文长度必须为64bit的整数倍");
rightInput = false;
}
if(rightInput==true) //检测输入正确时
{
labelIDEACheckInputMorC.setText("");
labelIDEACheckInputK.setText("");
Count16[] count16temp = new Count16[4];
for(col=0; col<4; col++)
{
count16temp[col] = new Count16();
}
for(col=0; col<32; col=col+4)
{
for(row=0; row<4; row++)
{
count16temp[row].sethex(chK[col+row]);
}
userKey[col/4+1] = Count16.toshort(count16temp); //生成用户密钥
}
key(userKey); //生成密钥
if(MtoCorCtoM==TYPE_C_TO_M) //生成脱密密钥并打印
{
de_key(Z);
keyPrint(DK);
}
else //打印加密密钥
{
keyPrint(Z);
}
count16MorC = new Count16[((chMorC.length-1)/16+1)*16]; //明密文存储内存分配
for(col=0; col<count16MorC.length; col++)
{
count16MorC[col] = new Count16();
}
for(col=0; col<chMorC.length; col++)
{
count16MorC[col].sethex(chMorC[col]);
}
if(MtoCorCtoM==TYPE_M_TO_C && buttonIDEAChangeDataFillType.getVisible()==false)
{
for(col=chMorC.length; col<count16MorC.length; col++) //默认填充0
{
count16MorC[col].sethex('0');
}
String strDataFillType;
strDataFillType = (String)comboBoxIDEAChangeDataFillType.getSelectedItem();
if(strDataFillType.equals("填充 0 (默认)"))
{
}
if(strDataFillType.equals("填充 1")) //填充1
{
for(col=chMorC.length; col<count16MorC.length; col++)
{
count16MorC[col].sethex('F');
}
}
if(strDataFillType.equals("填充0和1(先0后1)")) //填充01
{
for(col=chMorC.length; col<count16MorC.length; col++)
{
count16MorC[col].sethex('5');
}
}
if(strDataFillType.equals("填充1和0(先1后0)")) //填充10
{
for(col=chMorC.length; col<count16MorC.length; col++)
{
count16MorC[col].sethex('A');
}
}
}
for(group=1; group<=(count16MorC.length/16); group++) //分组信息
{
for(col=(group-1)*16,row=0; row<16; col++,row++)
{
count16temp[row%4].sethex(count16MorC[col].gethex());
if(row%4==3)
{
XX[row/4+1] = Count16.toshort(count16temp);
}
}
if(MtoCorCtoM == TYPE_M_TO_C) //加密计算
{
cip(XX,Z);
}
else //脱密计算
{
cip(XX,DK);
}
}
richEditIDEAResult.setText(strCorM);
strCorM = "";
buttonIDEACalculate.setEnabled(false);
richEditIDEAInputK.setEnabled(false);
richEditIDEAInputMorC.setEnabled(false);
richEditIDEAInputK.setBackColor(Color.LIGHTGRAY);
richEditIDEAInputMorC.setBackColor(Color.LIGHTGRAY);
buttonIDEAChangeDataFillType.setEnabled(false);
comboBoxIDEAChangeDataFillType.setEnabled(false);
comboBoxIDEAChangeDataFillType.setBackColor(Color.LIGHTGRAY);
}
}
}
private void cip(char[] IN,char[][] KEY) //加密函数
{
int i,j,r;
char[] OUT = new char[5];
char[] x = new char[5];
char kk,t1,t2,a;
Count16[] roundOut = new Count16[4];
for(i=0; i<4; i++)
{
roundOut[i] = new Count16();
}
strCorM = strCorM + "*****************************************";
if(MtoCorCtoM == TYPE_M_TO_C)
{
strCorM = strCorM + "第"+group+"组密文: ";
}
else
{
strCorM = strCorM + "第"+group+"组明文: ";
}
strCorM = strCorM + "-----------------------------------------";
x[1]=IN[1];
x[2]=IN[2];
x[3]=IN[3];
x[4]=IN[4];
for(r=1;r<=8;r++) //8圈迭代.
{
x[1]=mul(x[1],KEY[1][r]);
x[2]=(char)(((int)x[2]+(int)KEY[2][r])&one);
x[3]=(char)(((int)x[3]+(int)KEY[3][r])&one);
x[4]=mul(x[4],KEY[4][r]);
//乘加(MA)结构.
kk=mul(KEY[5][r],(char)((int)x[1]^(int)x[3]));
t1=mul(KEY[6][r],(char)(((int)kk+((int)x[2]^(int)x[4]))&one));
t2=(char)(((int)kk+(int)t1)&one);
//下一圈输入交换.
x[1]=(char)((int)x[1]^(int)t1);
x[4]=(char)((int)x[4]^(int)t2);
a=(char)((int)x[2]^(int)t2);
x[2]=(char)((int)x[3]^(int)t1);
x[3]=a;
strCorM = strCorM+"第"+r+"圈输出: ";
for(i=1; i<5; i++)
{
roundOut = Count16.shortToCount16( x[i] );
for(j=0; j<4; j++)
{
strCorM = strCorM + roundOut[j].gethex();
}
strCorM = strCorM + " ";
}
}
//输出变换得出加脱密结果.
OUT[1]=mul(x[1],KEY[1][round+1]);
OUT[4]=mul(x[4],KEY[4][round+1]);
OUT[2]=(char)((x[3]+KEY[2][round+1])&one);
OUT[3]=(char)((x[2]+KEY[3][round+1])&one);
if(MtoCorCtoM == TYPE_M_TO_C) //为打印作准备
{
if(group<=9)
{
strCorM = strCorM+"第"+group+"组加密结果: ";
}
else
{
strCorM = strCorM+"第"+group+"组加密结果: ";
}
}
else
{
if(group<=9)
{
strCorM = strCorM+"第"+group+"组脱密结果: ";
}
else
{
strCorM = strCorM+"第"+group+"组脱密结果: ";
}
}
for(i=1; i<5; i++)
{
roundOut = Count16.shortToCount16( OUT[i] );
for(j=0; j<4; j++)
{
strCorM = strCorM + roundOut[j].gethex();
}
strCorM = strCorM + " ";
}
strCorM = strCorM+"*****************************************";
}
private char mul(char a,char b) //模2的16次方加1运算
{
int p;
long q;
if((int)a==0)
{
p=maxim-(int)b;
}
else
{
if((int)b==0)
{
p=maxim-(int)a;
}
else
{
q=(long)a*(long)b;
if((q&((long)one))>(long)(q>>16))
{
p=(int)((q&((long)one))-(long)(q>>16));
}
else
{
p=(int)((q&((long)one))+(long)maxim-(long)(q>>16));
}
}
}
return (char)(p&one);
}
private void menuItemHelp_click(Object source, Event e)
{
MessageBox.show("IDEA算法使用帮助:\n 输入框内可以输入字符\n0-9以及大字字母A-F,注意小写字母不行。\n如果输入的字符不能通过检查,请确认是否输入了回车键。\n如有,请将回车字符删去。\n\n说明:\n 剪切: Ctrl+X\n 复制: Ctrl+C\n 粘贴: Ctrl+V"
,"请注意",MessageBox.OK+MessageBox.ICONEXCLAMATION+MessageBox.DEFBUTTON1);
}
/**
* NOTE: The following code is required by the Visual J++ form
* designer. It can be modified using the form editor. Do not
* modify it using the code editor.
*/
Container components = new Container();
MainMenu mainMenuIDEA = new MainMenu();
MenuItem menuItemIDEABegin = new MenuItem();
MenuItem menuItemIDEABack = new MenuItem();
MenuItem menuItemIDEAExit = new MenuItem();
Label labelIDEAInstruction = new Label();
RichEdit richEditIDEAResult = new RichEdit();
Button buttonIDEACalculate = new Button();
Label labelIDEACheckInputMorC = new Label();
ComboBox comboBoxIDEAChangeDataFillType = new ComboBox();
Button buttonIDEAChangeDataFillType = new Button();
Label labelIDEAChangeDataFillType = new Label();
Label labelIDEAInputMorC = new Label();
Label labelIDEADataFillType = new Label();
RichEdit richEditIDEAInputK = new RichEdit();
Label labelIDEAKlength = new Label();
Label labelIDEAMorClength = new Label();
RichEdit richEditIDEAInputMorC = new RichEdit();
Label labelIDEAInputK = new Label();
Label labelIDEACheckInputK = new Label();
RichEdit richEditIDEAKResult = new RichEdit();
Label labelIDEAKResult = new Label();
Label labelIDEAResult = new Label();
MenuItem menuItemHelp = new MenuItem();
Panel panelIDEA = new Panel();
PictureBox pictureBoxIDEA = new PictureBox();
RichEdit richEditBegin = new RichEdit();
RichEdit richEditzhuyi = new RichEdit();
private void initForm()
{
// NOTE: This form is storing resource information in an
// external file. Do not modify the string parameter to any
// resources.getObject() function call. For example, do not
// modify "foo1_location" in the following line of code
// even if the name of the Foo object changes:
// foo1.setLocation((Point)resources.getObject("foo1_location"));
IResourceManager resources = new ResourceManager(this, "FormIDEAwindow");
menuItemIDEABegin.setText("开始");
menuItemIDEABegin.addOnClick(new EventHandler(this.menuItemIDEABegin_click));
menuItemIDEABack.setText("返回");
menuItemIDEABack.addOnClick(new EventHandler(this.menuItemIDEABack_click));
menuItemIDEAExit.setText("退出");
menuItemIDEAExit.addOnClick(new EventHandler(this.menuItemIDEAExit_click));
labelIDEAInstruction.setFont(new Font("宋体", 16.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEAInstruction.setForeColor(Color.BLACK);
labelIDEAInstruction.setLocation(new Point(32, 16));
labelIDEAInstruction.setSize(new Point(288, 48));
labelIDEAInstruction.setTabIndex(0);
labelIDEAInstruction.setTabStop(false);
labelIDEAInstruction.setText("");
labelIDEAInstruction.setVisible(false);
richEditIDEAResult.setBackColor(new Color(204, 255, 51));
richEditIDEAResult.setFont(new Font("宋体", 14.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
richEditIDEAResult.setForeColor(Color.WINDOWTEXT);
richEditIDEAResult.setLocation(new Point(376, 184));
richEditIDEAResult.setSize(new Point(400, 328));
richEditIDEAResult.setTabIndex(13);
richEditIDEAResult.setText("");
richEditIDEAResult.setVisible(false);
richEditIDEAResult.setReadOnly(true);
richEditIDEAResult.setScrollBars(RichEditScrollBars.FORCED_VERTICAL);
buttonIDEACalculate.setFont(new Font("宋体", 18.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
buttonIDEACalculate.setLocation(new Point(272, 392));
buttonIDEACalculate.setSize(new Point(64, 48));
buttonIDEACalculate.setTabIndex(12);
buttonIDEACalculate.setText("");
buttonIDEACalculate.setVisible(false);
buttonIDEACalculate.addOnClick(new EventHandler(this.buttonIDEACalculate_click));
labelIDEACheckInputMorC.setBackColor(new Color(153, 77, 0));
labelIDEACheckInputMorC.setFont(new Font("宋体", 14.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEACheckInputMorC.setForeColor(Color.BLACK);
labelIDEACheckInputMorC.setLocation(new Point(16, 336));
labelIDEACheckInputMorC.setSize(new Point(320, 20));
labelIDEACheckInputMorC.setTabIndex(11);
labelIDEACheckInputMorC.setTabStop(false);
labelIDEACheckInputMorC.setText("");
labelIDEACheckInputMorC.setVisible(false);
labelIDEACheckInputMorC.setTextAlign(HorizontalAlignment.CENTER);
comboBoxIDEAChangeDataFillType.setBackColor(new Color(204, 255, 51));
comboBoxIDEAChangeDataFillType.setFont(new Font("宋体", 9.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
comboBoxIDEAChangeDataFillType.setLocation(new Point(16, 472));
comboBoxIDEAChangeDataFillType.setSize(new Point(192, 20));
comboBoxIDEAChangeDataFillType.setTabIndex(10);
comboBoxIDEAChangeDataFillType.setText("");
comboBoxIDEAChangeDataFillType.setVisible(false);
comboBoxIDEAChangeDataFillType.setStyle(ComboBoxStyle.DROPDOWNLIST);
comboBoxIDEAChangeDataFillType.setItems(new Object[] {
"填充 0 (默认)",
"填充 1",
"填充0和1(先0后1)",
"填充1和0(先1后0)"});
comboBoxIDEAChangeDataFillType.addOnSelectedIndexChanged(new EventHandler(this.comboBoxIDEAChangeDataFillType_selectedIndexChanged));
buttonIDEAChangeDataFillType.setFont(new Font("宋体", 9.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
buttonIDEAChangeDataFillType.setLocation(new Point(216, 448));
buttonIDEAChangeDataFillType.setSize(new Point(32, 24));
buttonIDEAChangeDataFillType.setTabIndex(9);
buttonIDEAChangeDataFillType.setText("更改");
buttonIDEAChangeDataFillType.setVisible(false);
buttonIDEAChangeDataFillType.addOnClick(new EventHandler(this.buttonIDEAChangeDataFillType_click));
labelIDEAChangeDataFillType.setFont(new Font("宋体", 12.0f, FontSize.POINTS, FontWeight.NORMAL, true, false, false, CharacterSet.DEFAULT, 0));
labelIDEAChangeDataFillType.setForeColor(new Color(224, 224, 224));
labelIDEAChangeDataFillType.setLocation(new Point(16, 448));
labelIDEAChangeDataFillType.setSize(new Point(192, 16));
labelIDEAChangeDataFillType.setTabIndex(8);
labelIDEAChangeDataFillType.setTabStop(false);
labelIDEAChangeDataFillType.setText("改变默认的数据填充类型");
labelIDEAChangeDataFillType.setVisible(false);
labelIDEAChangeDataFillType.setTextAlign(HorizontalAlignment.CENTER);
labelIDEAInputMorC.setFont(new Font("宋体", 12.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEAInputMorC.setForeColor(Color.BLACK);
labelIDEAInputMorC.setLocation(new Point(8, 88));
labelIDEAInputMorC.setSize(new Point(152, 23));
labelIDEAInputMorC.setTabIndex(1);
labelIDEAInputMorC.setTabStop(false);
labelIDEAInputMorC.setText("");
labelIDEAInputMorC.setVisible(false);
labelIDEADataFillType.setFont(new Font("宋体", 12.0f, FontSize.POINTS, FontWeight.NORMAL, true, false, false, CharacterSet.DEFAULT, 0));
labelIDEADataFillType.setForeColor(new Color(224, 224, 224));
labelIDEADataFillType.setLocation(new Point(16, 424));
labelIDEADataFillType.setSize(new Point(248, 16));
labelIDEADataFillType.setTabIndex(7);
labelIDEADataFillType.setTabStop(false);
labelIDEADataFillType.setText("数据填充类型:填充 0 (默认)");
labelIDEADataFillType.setVisible(false);
labelIDEADataFillType.setTextAlign(HorizontalAlignment.CENTER);
richEditIDEAInputK.setBackColor(new Color(204, 255, 51));
richEditIDEAInputK.setFont(new Font("宋体", 14.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
richEditIDEAInputK.setForeColor(Color.WINDOWTEXT);
richEditIDEAInputK.setLocation(new Point(8, 248));
richEditIDEAInputK.setSize(new Point(328, 80));
richEditIDEAInputK.setTabIndex(6);
richEditIDEAInputK.setText("");
richEditIDEAInputK.setVisible(false);
richEditIDEAInputK.setScrollBars(RichEditScrollBars.VERTICAL);
richEditIDEAInputK.addOnTextChanged(new EventHandler(this.richEditIDEAInputK_textChanged));
labelIDEAKlength.setFont(new Font("宋体", 12.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEAKlength.setForeColor(Color.BLACK);
labelIDEAKlength.setLocation(new Point(168, 216));
labelIDEAKlength.setSize(new Point(192, 23));
labelIDEAKlength.setTabIndex(5);
labelIDEAKlength.setTabStop(false);
labelIDEAKlength.setText("");
labelIDEAMorClength.setFont(new Font("宋体", 12.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEAMorClength.setForeColor(Color.BLACK);
labelIDEAMorClength.setLocation(new Point(168, 88));
labelIDEAMorClength.setSize(new Point(192, 23));
labelIDEAMorClength.setTabIndex(4);
labelIDEAMorClength.setTabStop(false);
labelIDEAMorClength.setText("");
richEditIDEAInputMorC.setBackColor(new Color(204, 255, 51));
richEditIDEAInputMorC.setFont(new Font("宋体", 14.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
richEditIDEAInputMorC.setForeColor(Color.WINDOWTEXT);
richEditIDEAInputMorC.setLocation(new Point(8, 120));
richEditIDEAInputMorC.setSize(new Point(328, 80));
richEditIDEAInputMorC.setTabIndex(3);
richEditIDEAInputMorC.setText("");
richEditIDEAInputMorC.setVisible(false);
richEditIDEAInputMorC.setScrollBars(RichEditScrollBars.VERTICAL);
richEditIDEAInputMorC.addOnTextChanged(new EventHandler(this.richEditIDEAInputMorC_textChanged));
labelIDEAInputK.setFont(new Font("宋体", 12.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEAInputK.setForeColor(Color.BLACK);
labelIDEAInputK.setLocation(new Point(8, 216));
labelIDEAInputK.setSize(new Point(152, 23));
labelIDEAInputK.setTabIndex(2);
labelIDEAInputK.setTabStop(false);
labelIDEAInputK.setText("");
labelIDEAInputK.setVisible(false);
labelIDEACheckInputK.setFont(new Font("宋体", 14.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEACheckInputK.setLocation(new Point(16, 360));
labelIDEACheckInputK.setSize(new Point(320, 20));
labelIDEACheckInputK.setTabIndex(14);
labelIDEACheckInputK.setTabStop(false);
labelIDEACheckInputK.setText("");
labelIDEACheckInputK.setVisible(false);
labelIDEACheckInputK.setTextAlign(HorizontalAlignment.CENTER);
richEditIDEAKResult.setBackColor(new Color(204, 255, 51));
richEditIDEAKResult.setFont(new Font("宋体", 14.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
richEditIDEAKResult.setForeColor(Color.WINDOWTEXT);
richEditIDEAKResult.setLocation(new Point(376, 56));
richEditIDEAKResult.setSize(new Point(400, 88));
richEditIDEAKResult.setTabIndex(15);
richEditIDEAKResult.setText("");
richEditIDEAKResult.setVisible(false);
richEditIDEAKResult.setReadOnly(true);
richEditIDEAKResult.setScrollBars(RichEditScrollBars.FORCED_VERTICAL);
labelIDEAKResult.setFont(new Font("宋体", 15.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEAKResult.setLocation(new Point(384, 32));
labelIDEAKResult.setSize(new Point(240, 23));
labelIDEAKResult.setTabIndex(16);
labelIDEAKResult.setTabStop(false);
labelIDEAKResult.setText("");
labelIDEAKResult.setVisible(false);
labelIDEAResult.setFont(new Font("宋体", 15.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
labelIDEAResult.setLocation(new Point(384, 160));
labelIDEAResult.setSize(new Point(240, 23));
labelIDEAResult.setTabIndex(17);
labelIDEAResult.setTabStop(false);
labelIDEAResult.setText("");
labelIDEAResult.setVisible(false);
menuItemHelp.setText("帮助");
menuItemHelp.addOnClick(new EventHandler(this.menuItemHelp_click));
mainMenuIDEA.setMenuItems(new MenuItem[] {
menuItemIDEABegin,
menuItemIDEABack,
menuItemIDEAExit,
menuItemHelp});
/* @designTimeOnly mainMenuIDEA.setLocation(new Point(112, -32)); */
this.setBackColor(new Color(153, 77, 0));
this.setForeColor(Color.BLACK);
this.setText("密码学-IDEA算法");
this.setAutoScaleBaseSize(new Point(6, 12));
this.setBorderStyle(FormBorderStyle.FIXED_3D);
this.setClientSize(new Point(790, 531));
this.setMaximizeBox(false);
this.setMenu(mainMenuIDEA);
this.setStartPosition(FormStartPosition.CENTER_SCREEN);
panelIDEA.setSize(new Point(792, 536));
panelIDEA.setTabIndex(19);
panelIDEA.setText("panel1");
pictureBoxIDEA.setLocation(new Point(112, 0));
pictureBoxIDEA.setSize(new Point(680, 536));
pictureBoxIDEA.setTabIndex(0);
pictureBoxIDEA.setTabStop(false);
pictureBoxIDEA.setText("pictureBox1");
pictureBoxIDEA.setImage((Bitmap)resources.getObject("pictureBoxIDEA_image"));
richEditBegin.setBackColor(new Color(153, 77, 0));
richEditBegin.setEnabled(false);
richEditBegin.setFont(new Font("宋体", 16.0f));
richEditBegin.setForeColor(new Color(204, 255, 51));
richEditBegin.setLocation(new Point(8, 0));
richEditBegin.setSize(new Point(32, 200));
richEditBegin.setTabIndex(1);
richEditBegin.setText("请点击开始按钮");
richEditBegin.setBorderStyle(BorderStyle.NONE);
richEditzhuyi.setBackColor(new Color(153, 77, 0));
richEditzhuyi.setEnabled(false);
richEditzhuyi.setFont(new Font("宋体", 9.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
richEditzhuyi.setForeColor(new Color(204, 255, 51));
richEditzhuyi.setLocation(new Point(8, 208));
richEditzhuyi.setSize(new Point(96, 304));
richEditzhuyi.setTabIndex(2);
richEditzhuyi.setText("注意: 输入框内只能输入数字0到9和字母A到F,字母为大写。输入其余不符合上述条件的字符本软件均报错误。输入完毕后请点击右边的加脱密按钮即可开始运算。务必不要使用按下回车键来代替按下按钮,如使用了回车键,请将因为按下回车键产生的最后两位字符删去。");
richEditzhuyi.setBorderStyle(BorderStyle.NONE);
this.setNewControls(new Control[] {
panelIDEA,
labelIDEAResult,
labelIDEAKResult,
richEditIDEAKResult,
labelIDEACheckInputK,
richEditIDEAResult,
buttonIDEACalculate,
labelIDEACheckInputMorC,
comboBoxIDEAChangeDataFillType,
buttonIDEAChangeDataFillType,
labelIDEAChangeDataFillType,
labelIDEADataFillType,
richEditIDEAInputK,
labelIDEAKlength,
labelIDEAMorClength,
richEditIDEAInputMorC,
labelIDEAInputK,
labelIDEAInputMorC,
labelIDEAInstruction});
panelIDEA.setNewControls(new Control[] {
richEditzhuyi,
richEditBegin,
pictureBoxIDEA});
}
/**
* The main entry point for the application.
*
* @param args Array of parameters passed to the application
* via the command line.
*/
public static void main(String args[])
{
Application.run(new FormIDEAwindow());
}
}