要求:
* 對用戶輸入的每個字符的值進(jìn)行加密,將解密后的字符串輸出
* 對用戶輸入的已加密字符串進(jìn)行解密并輸出
實(shí)現(xiàn)代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.util.Scanner; /** * 要求: * 1.對用戶輸入的每個字符的值進(jìn)行加密,將解密后的字符串輸出 * 2.對用戶輸入的已加密字符串進(jìn)行解密并輸出 * @author Administration * */ public class Encryption { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println( "請輸入一個英文字符串或揭秘字符串" ); //獲取用戶輸入 String password = input.nextLine(); //講獲取的字符串轉(zhuǎn)成字符數(shù)組 char [] c = password.toCharArray(); //使用for循環(huán)給字符數(shù)組加密 for ( int i= 0 ;i<c.length;i++){ c[i] = ( char )(c[i]^ 20000 ); } //輸出加密或者解密結(jié)果 System.out.println( "加密或者解密之后的結(jié)果如下:" ); System.out.println( new String(c)); } } |
運(yùn)行結(jié)果:
*加密過程:
請輸入一個英文字符串或揭秘字符串:
I Love You
加密或者解密之后的結(jié)果如下:
乩一乬乏乖久一乹乏乕
*解密過程:
請輸入一個英文字符串或揭秘字符串:
乩一乬乏乖久一乹乏乕
加密或者解密之后的結(jié)果如下:
I Love You
原理解析:
本例的關(guān)鍵技術(shù)是異或運(yùn)算。
原理:如果一個字符(或數(shù)值)A與一個數(shù)值B進(jìn)行異或運(yùn)算得到C,則再用C和B進(jìn)行以后運(yùn)算就可以還原得到A。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。