8
8
9
9
public class Vigenere {
10
10
11
- public static String encrypt (final String message , final String key )
11
+ public static String encrypt (final String message , final String key )
12
12
{
13
13
14
14
String result = "" ;
15
15
16
- for (int i = 0 , j = 0 ; i < message .length (); i ++)
17
- {
16
+ for (int i = 0 , j = 0 ; i < message .length (); i ++) {
18
17
char c = message .charAt (i );
19
- if (c >= 'A' && c <= 'Z' ) {
20
- result += (char ) ((c + key .toUpperCase ().charAt (j ) - 2 * 'A' ) % 26 + 'A' );
21
- j = ++j % key .length ();
22
- } else if (c >= 'a' && c <= 'z' ) {
23
- result += (char ) ((c + key .toLowerCase ().charAt (j ) - 2 * 'a' ) % 26 + 'a' );
24
- j = ++j % key .length ();
18
+ if (Character .isLetter (c )){
19
+ if (Character .isUpperCase (c )) {
20
+ result += (char ) ((c + key .toUpperCase ().charAt (j ) - 2 * 'A' ) % 26 + 'A' );
21
+
22
+ } else {
23
+ result += (char ) ((c + key .toLowerCase ().charAt (j ) - 2 * 'a' ) % 26 + 'a' );
24
+
25
+ }
25
26
} else {
26
27
result +=c ;
27
- continue ;
28
28
}
29
+ j = ++j % key .length ();
29
30
}
30
31
return result ;
31
32
}
32
33
33
- public static String decrypt ( final String message , final String key )
34
+ public static String decrypt ( final String message , final String key )
34
35
{
35
36
String result ="" ;
36
37
37
38
for (int i = 0 , j = 0 ; i < message .length (); i ++){
38
39
39
40
char c = message .charAt (i );
40
- if ((c >= 'A' && c <= 'Z' )){
41
- result += ((char )('Z' -(25 -(c -key .toUpperCase ().charAt (j )))%26 ));
42
- }
43
- else if (c >= 'a' && c <= 'z' ){
44
- result += ((char )('z' -(25 -(c -key .toLowerCase ().charAt (j )))%26 ));
45
- }
46
- else {
41
+ if (Character .isLetter (c )){
42
+ if (Character .isUpperCase (c )) {
43
+ result += ((char )('Z' -(25 -(c -key .toUpperCase ().charAt (j )))%26 ));
44
+
45
+ } else {
46
+ result += ((char )('z' -(25 -(c -key .toLowerCase ().charAt (j )))%26 ));
47
+
48
+ }
49
+ } else {
47
50
result +=c ;
48
- continue ;
49
51
}
52
+
50
53
j = ++j % key .length ();
54
+
51
55
}
52
56
return result ;
53
- }
57
+ }
54
58
public static void main (String [] args ){
55
59
String text ="Hello World!" ;
56
60
String key ="itsakey" ;
@@ -60,4 +64,4 @@ public static void main (String [] args){
60
64
System .out .println (decrypt (ciphertext , key ));
61
65
62
66
}
63
- }
67
+ }
0 commit comments