HW--字符串加解密
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--字符串加解密的更多相关文章
- android中使用jni对字符串加解密实现分析
android中使用jni对字符串加解密实现分析 近期项目有个需求.就是要对用户的敏感信息进行加密处理,比方用户的账户password,手机号等私密信息.在java中,就对字符串的加解密我们能够使用A ...
- iOS - (base64对字符串加解密)
今天公司让做支付系统,为了安全起见,需要对一些数据进行加密,然而我首想到的就是 base64 ,严格来说这不是一种加密方式,这只是将原有的一些字符串或者其它的一些文本进行一个转化而已,就是转化成数字, ...
- 华为OJ:字符串加解密
题目描述 1.对输入的字符串进行加解密,并输出. 2加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该 ...
- iOS开发:用DES对字符串加解密
参考http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html,做了个小修改,实现PHP,JAVA,Objective-c加解密结果相同 ...
- C#常用字符串加解密方法封装
C#中常用的字符串加密.解密方法封装,包含只加密但不解密的方法.收藏起来备用. //方法一 //须添加对System.Web的引用 //using System.Web.Security; /// & ...
- C++ 简单字符串加解密(转载)
#include <iostream.h> #include <windows.h> #include <tchar.h> void EncodeString(LP ...
- 基于Crypto++的aes 字符串加解密实现
esaes.h: #ifndef ESAES_H #define ESAES_H #include <cryptopp/aes.h> #include <iostream> # ...
- Java 使用AES/CBC/PKCS7Padding 加解密字符串
介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别要实现在java端用PKCS7Padding填充, ...
- Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作
# -*- coding: gb2312 -*- #用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作 #作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.co ...
- base64加解密字符串
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...
随机推荐
- Swift对面向对象提供了良好的支持,下面介绍几个其独有的特性。
Swift对面向对象提供了良好的支持,下面介绍几个其独有的特性. 懒加载属性 Swift在语言层面上提供了类中懒加载属性的支持,使用lazy作为关键字: class Renderer { lazy v ...
- [置顶] Flex中Tree组件无刷新删除节点
在Tree组件中经常要删除某个节点,而删除之后重新刷新加载该Tree组件会影响整个操作效果和效率,因此,无刷新删除就比较好,既删除了节点也没有刷新tree,而使Tree的状态处于删除之前的状态. 无刷 ...
- Articulate Studio课间制作工具
Articulate Studio可以说是目前国际上用户最广泛的e-learning课件制作工具之 一,通过Articulate Studio,你可以方便.快捷的创建引人入胜的Flash演示和e-le ...
- C#-datagridview隐藏行头
在进行datagridview的设置的过程中,常常会遇到需要设定datagridview1的行头显示,这就需要用到datagridview的属性: RowHeadersVisible属性设置为fals ...
- Docker容器案例:应用 Mysql
原创 杜亦舒 前阶段体验 Mysql 的新版本 5.7.13,由于机器里已经有 Mysql了,再安装另一个版本会有一些麻烦,为了简单,便使用 Docker 容器来安装 可能有人会认为没必要,在一台 ...
- careercup-中等难度 17.9
17.9 设计一个方法,找出任意指定单词在一本书中的出现频率. 解法: 1 单次查询 遍历这本书的每个单词,计算给定单词出现的次数.时间复杂度O(n),我们无法继续优化它,因为书中的每个单次都需要访问 ...
- springMVC学习笔记二
六.springmvc的注解 xml的配置→注解 1.新建一个配置文件还是在config下 新建springAnnotation-servlet.xml web.xml 修改初始化为<param ...
- UTF-8编码与Unicode CS2的转换
/* Convert a UTF-8 string into a UCS-2 array. */ void tcstrutftoucs(const char *str, uint16_t *ary, ...
- ssh用root直接登录失败的问题
解决方法: 1) 以root身份,chmod +w /etc/ssh/sshd_config 2) vi /etc/ssh/sshd_config 3) 将PermitRootLogin no改成Pe ...
- Android 自学之进度条ProgressBar
进度条(ProgressBar)也是UI界面中的一种非常使用的组件,通常用于向用户显示某个耗时完成的百分比.因此进度条可以动态的显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应, ...