package t0817;
import java.util.Scanner; public class StringEncrypt {
public static void main(String[] args){
Scanner scanner_1 = new Scanner(System.in);
String str_1 = scanner_1.nextLine();
char chPass[]=str_1.toCharArray();
char chResu[]=new char[str_1.length()]; Scanner scanner_2 = new Scanner(System.in);
String str_2 = scanner_2.nextLine();
char chResu2[]=str_2.toCharArray();
char chPass2[]=new char[str_2.length()]; Encrypt(chPass,chResu);
System.out.println(chResu);
unEncrypt(chResu2,chPass2);
System.out.println(chPass2);
}
/*
* 在该函数中实现字符串加密并输出
*/
static void Encrypt (char aucPassword[], char aucResult[]){
for(int i=0;i<aucPassword.length;i++){
if(aucPassword[i]>='a'&&aucPassword[i]<='z'){ //小写字母后面一个(+1),再变大写字母(-32)
if(aucPassword[i]=='z')
aucResult[i]='A';
else
{
aucResult[i]=(char)(aucPassword[i]+1-32);
}
}
else if(aucPassword[i]>='A'&&aucPassword[i]<='Z'){ // 大写字母变小写
if(aucPassword[i]=='Z')
aucResult[i]='a';
else
{
aucResult[i]=(char)(aucPassword[i]+1+32);
}
}
else if(aucPassword[i]>='0'&&aucPassword[i]<='9'){ // 数字
if(aucPassword[i]=='9')
aucResult[i]='0';
else
aucResult[i]=(char)(aucPassword[i]+1);
}
else aucResult[i]=aucPassword[i]; //其他字符保持不变化 } }
/*
* 在该函数中实现字符串解密并输出
*/
static int unEncrypt (char result[], char password[]) {
for(int i=0;i<result.length;i++){
if(result[i]>='a'&&result[i]<='z'){ //小写字母变大写
if(result[i]=='a')
password[i]='Z';
else
{
password[i]=(char)(result[i]-32-1);
}
}
else if(result[i]>='A'&&result[i]<='Z'){ // 大写字母变小写
if(result[i]=='A')
password[i]='z';
else
{
password[i]=(char)(result[i]+32-1);
}
}
else if(result[i]>='0'&&result[i]<='9'){ // 数字
if(result[i]=='0')
password[i]='9';
else
password[i]=(char)(result[i]-1);
}
else password[i]=result[i]; //保持不变化 }// for循环
return 0;
}//j解码函数 }

题目描述

1、对输入的字符串进行加解密,并输出。

2加密方法为:

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;

其他字符不做变化。

3、解密方法为加密的逆过程。

接口描述:

实现接口,每个接口实现1个基本操作:

void Encrypt (char aucPassword[], char aucResult[]):在该函数中实现字符串加密并输出

说明:

1、字符串以\0结尾。

2、字符串最长100个字符。

int unEncrypt (char result[], char password[]):在该函数中实现字符串解密并输出

说明:

1、字符串以\0结尾。

2、字符串最长100个字符。

知识点 字符串
运行时间限制 10M
内存限制 128
输入

输入说明
输入一串要加密的密码
输入一串加过密的密码

输出

输出说明
输出加密后的字符
输出解密后的字符

样例输入 abcdefg BCDEFGH
样例输出 BCDEFGH abcdefg

HW--字符串加解密的更多相关文章

  1. android中使用jni对字符串加解密实现分析

    android中使用jni对字符串加解密实现分析 近期项目有个需求.就是要对用户的敏感信息进行加密处理,比方用户的账户password,手机号等私密信息.在java中,就对字符串的加解密我们能够使用A ...

  2. iOS - (base64对字符串加解密)

    今天公司让做支付系统,为了安全起见,需要对一些数据进行加密,然而我首想到的就是 base64 ,严格来说这不是一种加密方式,这只是将原有的一些字符串或者其它的一些文本进行一个转化而已,就是转化成数字, ...

  3. 华为OJ:字符串加解密

    题目描述 1.对输入的字符串进行加解密,并输出. 2加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该 ...

  4. iOS开发:用DES对字符串加解密

    参考http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html,做了个小修改,实现PHP,JAVA,Objective-c加解密结果相同 ...

  5. C#常用字符串加解密方法封装

    C#中常用的字符串加密.解密方法封装,包含只加密但不解密的方法.收藏起来备用. //方法一 //须添加对System.Web的引用 //using System.Web.Security; /// & ...

  6. C++ 简单字符串加解密(转载)

    #include <iostream.h> #include <windows.h> #include <tchar.h> void EncodeString(LP ...

  7. 基于Crypto++的aes 字符串加解密实现

    esaes.h: #ifndef ESAES_H #define ESAES_H #include <cryptopp/aes.h> #include <iostream> # ...

  8. Java 使用AES/CBC/PKCS7Padding 加解密字符串

    介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别要实现在java端用PKCS7Padding填充, ...

  9. Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作

    # -*- coding: gb2312 -*- #用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作 #作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.co ...

  10. base64加解密字符串

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...

随机推荐

  1. 关于JavaScripting API您不知道的5件事

    现在,许多 Java 开发人员都喜欢在 Java 平台中使用脚本语言,但是使用编译到 Java 字节码中的动态语言有时是不可行的.在某些情况中,直接编写一个 Java 应用程序的脚本 部分 或者在一个 ...

  2. Hadoop MapReduce概念学习系列之mr的Shuffle(二十二)

    Shuffle是非常非常非常重要.搞mr,必须熟烂于心. 因为,分区,分组,排序,,,都是在Shuffle里完成.

  3. light oj 1116 - Ekka Dokka

    1116 - Ekka Dokka   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Ekka ...

  4. 新建数据库,然后使用SQL语句创建表、存储过程、用户说明

    需要在数据库的安全性,用户那里为用户设置一下权限

  5. C#公历转农历算法

    C#公历转农历算法,高手们也可以改写一下让其更加有效率! Code/// <summary> /// LunDay 的摘要说明. /// 用法说明 /// 直接调用即可,比较简单 /// ...

  6. C#基础知识回顾-- 反射(1)

    C#基础知识回顾-- 反射(1)   反射(reflection)是一种允许用户获得类型信息的C#特性.术语“反射”源自于它的工作方式: Type对象映射它所代表的底层对象.对Type对象进行查询可以 ...

  7. 单点登录系统CAS筹建及取得更多用户信息的实现

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  8. 时间紧迫,写一些 NavigationController 一次性返回2级界面甚至更多级的界面

    在NavigationController中,调用pushViewController可以将界面推到指定的界面,调用popToViewController可以返回上层界面,可是它的实现原理是什么? 好 ...

  9. 逗号分隔字符串转换为一张表--解决查询in(逗号分隔字符串)出错问题

    CREATE PROCEDURE [dbo].[Pro_TEST] AS BEGIN ) ) SET @split=',' SET @c='025,023,014,015' )) ) BEGIN IN ...

  10. Project Management - 3) Manage Your Meetings

    1. 取消没有价值的会议 会议是有代价和成本的 不要举行顺序式的多人进度报告会议 eg: 这周做了什么,下周还要做什么? 除了发言人和项目经理外,每个人都会觉得无聊. 这种会议是在拖项目的后腿,赶紧停 ...