信息关键内容加密

一、实验目的:

了解及掌握正则表达式及简单的字符加密解密

项目性质:设计型

二、实验内容:

1、有一段信息,“本次见面时间为2021年5月7日,中午12点30分,地点位于卫星路7186号,车牌号是吉AB27D,如果临时有事,请及时与我联系,电话是18812342234”

2、里面包括一些特定的日期、时间等,请对里面的包含数字的信息进行提取,并加密和解密

3、所用的技术包括正则表达式和字符加密解密

三、实验代码:

EncryptAndDecrypt.java

package Encryption;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EncryptAndDecrypt {//加密解密类
    String encrypt(String sourceString,String password){//加密算法
        char[] p=password.toCharArray();//转数组
        int n=p.length;//字符串长度
        char []c=sourceString.toCharArray();
        int m=c.length;
        for(int k=0;k<m;k++){
            int mima=c[k]+p[k%n];//加密
            c[k]=(char)mima;
        }
        return new String(c);//返回密文
    }
    String ddecrypt(String sourceString,String password){//解密算法
        char[] p=password.toCharArray();//转数组
        int n=p.length;//字符串长度
        char []c=sourceString.toCharArray();
        int m=c.length;
        for(int k=0;k<m;k++){
            int mima=c[k]-p[k%n];//解密
            c[k]=(char)mima;
        }
        return new String(c);//返回明文
    }
}

 Zz.java

package Encryption;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import Encryption.EncryptAndDecrypt;
public class Zz {
	public static void main(String args[]){
        String sourceString="本次见面时间为2021年5月7日,中午12点30分,地点位于卫星路7186号,车牌号是吉AB27D,如果临时有事,请及时与我联系,电话是18812342234";
        String reg="[^0-9]";
        Pattern p = Pattern.compile(reg);
        Matcher m = p.matcher(sourceString);
        System.out.println("输入密码加密:"+sourceString);

        System.out.println("提取出的数字信息为:");
        System.out.println(m.replaceAll("").trim());//提取信息
        EncryptAndDecrypt person=new EncryptAndDecrypt();
        System.out.println("请输入加密密码:");
        Scanner scanner=new Scanner(System.in);
        String password=scanner.nextLine();
        String secret=person.encrypt(sourceString,password);
        System.out.println("密文:"+secret);
        System.out.println("输入解密密码:");
        password=scanner.nextLine();
        String source=person.ddecrypt(secret,password);
        System.out.println("明文:"+source);
    }

}

四、实验结果(截图)

 

 参考书籍:Java2实用教程第5版(微课版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_1_7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值