zoukankan      html  css  js  c++  java
  • 替代密码 && 置换密码

    1 .替代密码

    加密:

    public class Caesar {
        public static void main(String args[]) {
            Scanner in = new Scanner(System.in);
            int k = 25;
    //        System.out.println("输入要加密的字符串:");
            String s = in.nextLine() ;
            int len = s.length();
            System.out.println("解密后为");
            for(int i=0;i<len;i++){
                int flag = s.charAt(i) - 'a';
                if(flag>=0&&flag<=25) {
                    flag = (flag+k)%26;
                    char temp = (char)(flag+'a');
                    
                    System.out.print(temp);
                }
            }
        }
    }

    解密:

    import java.util.Scanner;
    
    public class Caesar {
        public static void main(String args[]) {
            Scanner in = new Scanner(System.in);
            int k = 25;
    //        System.out.println("输入要加密的字符串:");
            String s = in.nextLine() ;
            int len = s.length();
            System.out.println("解密后为");
            for(int i=0;i<len;i++){
                int flag = s.charAt(i) - 'a';
                if(flag>=0&&flag<=25) {
                    flag = (flag-k+26)%26;
                    char temp = (char)(flag+'a');
                    
                    System.out.print(temp);
                }
            }
        }
    }

    2、置换密码

    ps:

    在以下代码片中注意几点
    1、需要加密或解密的字符串长度必须为密钥中有效字母长度的整数倍
    2、只能存在小写字母
    3、若在输出矩阵中(两个for的那个),数组为arr则为加密,若为arr1则为解密

    code

    public class zhihuan {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner in = new Scanner(System.in);
            String ming = "luozihanforestforestabca";
            String key = "huanghailong";
            HashMap<Integer,Integer>mp = new HashMap<Integer,Integer>();
            HashMap<Integer,Integer>mp2 = new HashMap<Integer,Integer>();
            int cnt = 0 ;// 统计有多少个不重复的
            for(int i=0;i<key.length();i++) {
                int t = key.charAt(i)-'a';
                if(mp.get(t) == null) {
                    cnt ++;
                    mp.put(t,1);
                }
            }
            mp.clear();int[] arr = new int[cnt];int[] arr1 = new int[cnt];
            cnt = 0 ;
            for(int i=0;i<key.length();i++) {
                int t = key.charAt(i)-'a';
                if(mp.get(t) == null) {
                    arr[cnt] = t;
                    mp2.put(cnt,t);
                    mp.put(t,1);
                    cnt++;
                }
            }
            mp.clear();
            Arrays.sort(arr);
            for(int i=0;i<arr.length;i++) {    
                mp.put(arr[i], i);
            }
            
            for(int i=0;i<arr.length;i++) {
                arr[i] = mp.get(mp2.get(i));
    //            System.out.print(arr[i] + " ");
                arr1[arr[i]] = i;
            }
            int m = arr.length;int n = ming.length()/m;
    //        System.out.println(n);
            for(int i=0;i<n;i++) {
                for(int j=0;j<m;j++) {
                    int pos = i*m+arr1[j];
    //                int pos = i*m+j;
                    System.out.print(ming.charAt(pos));
                }
            }
        }
    
    }
  • 相关阅读:
    AJAX聊天室小DEMO(讨厌JS,IE下有问题已解决)
    [ZT]线索二叉树(C#数据结构五)
    栈(C#数据结构学习二)
    eclipse 安装 resin 3 步骤
    解决全局utf8编码下asp.net接收gb2312乱码的问题
    模板里的控件要用FindControl(id)方法读取
    OpenSessionInView
    asp:button控件调用js函数不刷新方法
    OFFICE 出现“正在配置”的解决方法
    开发经验
  • 原文地址:https://www.cnblogs.com/tombraider-shadow/p/14603403.html
Copyright © 2011-2022 走看看