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()); |
} |
} |