以前米事写的小程序 - -
操作是写入密匙(限定是长度最多为10的数字串)/字符 实时转换
加密方法是对每个字符*(除了字母之外所有字符也都可行 - -)进行向后移位的操作。
【程式截图】
【源码】
Decode.java
-
/**
-
* 解密算法
-
*/
-
public class Decode {
-
-
/**
-
* 解密算法
-
* @param keyStr 密匙
-
* @param ostr 密文
-
* @return 明文
-
*/
-
-
char [ ] str = ostr. toCharArray ( );
-
int [ ] key = new int [ 20 ];
-
-
for ( int i= 0;i<keyStr. length ( );i++ ) {
-
key [i ]= ( ( int )keyStr. charAt (i ) ) -48;
-
}
-
-
for ( int i= 0;i<ostr. length ( );i++ ) {
-
str [i ] = ( char ) ( ( int )str [i ]-key [i%keyStr. length ( ) ] );
-
}
-
-
}
-
-
}
Encode.java
-
/**
-
* 加密算法
-
*/
-
public class Encode {
-
-
/**
-
* 加密算法
-
* @param keyStr 密匙
-
* @param str 明文
-
* @return 密文
-
*/
-
char [ ] ostr = str. toCharArray ( );
-
int [ ] key = new int [ 20 ];
-
-
for ( int i= 0;i<keyStr. length ( );i++ ) {
-
key [i ]= ( ( int )keyStr. charAt (i ) ) -48;
-
}
-
-
for ( int i = 0;i<str. length ( );i++ ) {
-
ostr [i ] = ( char ) ( ( int )ostr [i ]+key [i%keyStr. length ( ) ] );
-
}
-
-
}
-
-
}
GUIFrame.java
-
import java.awt.*;
-
import java.awt.event.ActionEvent;
-
import java.awt.event.ActionListener;
-
-
import javax.swing.*;
-
import javax.swing.border.Border;
-
import javax.swing.event.DocumentEvent;
-
import javax.swing.event.DocumentListener;
-
-
/**
-
* GUI界面
-
*/
-
-
-
/** 加密选项 */
-
/** 解密选项 */
-
-
/** 容器 */
-
/** 边框 */
-
-
/** 加密提示 */
-
/** 解密提示 */
-
/** 密匙提示 */
-
-
/** 明文框 */
-
/** 密文框 */
-
/** 密匙框 */
-
-
/** 处理行为 */
-
EncodeStrAction strEncodeAction = new EncodeStrAction ( );
-
DecodeStrAction strDecodeAction = new DecodeStrAction ( );
-
KeyEncodeAction keyEncodeAction = new KeyEncodeAction ( );
-
KeyDecodeAction keyDecodeAction = new KeyDecodeAction ( );
-
-
/**
-
* 构造方法
-
*/
-
public GUIFrame ( ) {
-
this. setSize ( 300, 200 );
-
this. setTitle ( "加密解密小程序 - -" );
-
-
-
-
encodeBtn. addActionListener ( new EncodeAction ( ) );
-
decodeBtn. addActionListener ( new DecodeAction ( ) );
-
-
chooseBtn. add (encodeBtn );
-
chooseBtn. add (decodeBtn );
-
-
this. add (chooseBtn, "North" );
-
-
panel. setSize ( 300, 300 );
-
panel. setBorder (border );
-
-
this. add (panel, "Center" );
-
-
-
showEncodeFrame ( );
-
-
this. setVisible ( true );
-
}
-
-
/** 加密选项 */
-
-
encodeBtn. setSelected ( true );
-
decodeBtn. setSelected ( false );
-
setBorderTitle ( "加密" );
-
showEncodeFrame ( );
-
}
-
-
}
-
-
/** 解密选项 */
-
-
encodeBtn. setSelected ( false );
-
decodeBtn. setSelected ( true );
-
setBorderTitle ( "解密" );
-
showDecodeFrame ( );
-
}
-
-
}
-
-
/** 清理容器 */
-
private void clear ( ) {
-
panel. remove (encodeLabel );
-
panel. remove (decodeLabel );
-
panel. remove (keyLabel );
-
panel. remove (encodeStr );
-
panel. remove (decodeStr );
-
panel. remove (keyStr );
-
}
-
-
/** 设置标题 */
-
panel. setBorder ( null );
-
panel. setBorder (border );
-
}
-
-
/** 加密操作 */
-
private void showEncodeFrame ( ) {
-
-
clear ( );
-
-
encodeStr. setEditable ( true );
-
panel. add (encodeLabel );panel. add (encodeStr );
-
panel. add (keyLabel );panel. add (keyStr );
-
-
decodeStr. setEditable ( false );
-
panel. add (decodeLabel );panel. add (decodeStr );
-
-
encodeStr. getDocument ( ). addDocumentListener (strEncodeAction );
-
decodeStr. getDocument ( ). removeDocumentListener (strDecodeAction );
-
-
keyStr. getDocument ( ). removeDocumentListener (keyDecodeAction );
-
keyStr. getDocument ( ). addDocumentListener (keyEncodeAction );
-
-
}
-
-
/** 解密操作 */
-
private void showDecodeFrame ( ) {
-
clear ( );
-
-
decodeStr. setEditable ( true );
-
panel. add (decodeLabel );panel. add (decodeStr );
-
panel. add (keyLabel );panel. add (keyStr );
-
-
encodeStr. setEditable ( false );
-
panel. add (encodeLabel );panel. add (encodeStr );
-
-
encodeStr. getDocument ( ). removeDocumentListener (strEncodeAction );
-
decodeStr. getDocument ( ). addDocumentListener (strDecodeAction );
-
-
keyStr. getDocument ( ). removeDocumentListener (keyEncodeAction );
-
keyStr. getDocument ( ). addDocumentListener (keyDecodeAction );
-
-
}
-
-
/** 加密处理 */
-
-
updateDecodeStr ( );
-
}
-
-
updateDecodeStr ( );
-
}
-
-
updateDecodeStr ( );
-
}
-
-
}
-
-
/** 解密处理 */
-
-
updateEncodeStr ( );
-
}
-
-
updateEncodeStr ( );
-
}
-
-
updateEncodeStr ( );
-
}
-
-
}
-
-
/** 加密更新 */
-
private void updateDecodeStr ( ) {
-
// 判定密匙是否合法
-
if (chk (keyStr. getText ( ) ) ) {
-
decodeStr. setText ( new Encode ( ). encodeStr (keyStr. getText ( ), encodeStr. getText ( ) ) );
-
} else {
-
decodeStr. setText ( "密匙必须是最多十位的数字!" );
-
}
-
}
-
-
/** 解密更新 */
-
private void updateEncodeStr ( ) {
-
// 判定密匙是否合法
-
if (chk (keyStr. getText ( ) ) ) {
-
encodeStr. setText ( new Decode ( ). decodeStr (keyStr. getText ( ), decodeStr. getText ( ) ) );
-
} else {
-
encodeStr. setText ( "密匙必须是最多十位的数字!" );
-
}
-
}
-
-
if (key. length ( )> 10 ) {
-
return false;
-
}
-
try {
-
return true;
-
return false;
-
}
-
}
-
-
/** 加密时改变密匙 */
-
updateDecodeStr ( );
-
}
-
-
updateDecodeStr ( );
-
}
-
-
updateDecodeStr ( );
-
}
-
-
}
-
-
/** 解密时改变密匙 */
-
-
updateEncodeStr ( );
-
}
-
-
updateEncodeStr ( );
-
}
-
-
updateEncodeStr ( );
-
}
-
}
-
-
}
Main.java