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
时间: 2024-11-02 09:48:06

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

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

android中使用jni对字符串加解密实现分析 最近项目有个需求,就是要对用户的敏感信息进行加密处理,比如用户的账户密码,手机号等私密信息.在java中,就对字符串的加解密我们可以使用AES算法加密字符串,使用它的好处就不必多说了,但我们又知道android的源代码是可以被反编译的,所以使用纯Java方式的AES加密是不安全的,所以想到了使用android中的jni来对字符串加解密处理,它会产生一个.so文件,更重要的是它通过C/C++代码实现,所以安全行比较高,它可以被反编译成机器码,但几乎

Android jni aes加解密,实现文件的加解密,具体实现可以自行修改,上面的代码为简单介绍,下面的是JNI端实现文件加解密,可以修改为字符串加解密

#include "aes.h" #include "modes.h" #include "e_os2.h" #include "aes_locl.h" #include "opensslconf.h" AES_KEY aes; //aes cbc模式加解密用到的向量 unsigned char iv[AES_BLOCK_SIZE]; for (i = 0; i < AES_BLOCK_SIZE; i

华为OJ:字符串加解密

题目描述 1.对输入的字符串进行加解密,并输出. 2加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0: 其他字符不做变化. 3.解密方法为加密的逆过程. 接口描述: 实现接口,每个接口实现1个基本操作: void Encrypt (char aucPassword[], char aucResult[]):在该函数中实现字符串加密并输出 说明: 1.字符串以

字符串加解密

题目描述 1.对输入的字符串进行加解密,并输出. 2加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0: 其他字符不做变化. 3.解密方法为加密的逆过程 #ifndef _ENCRYPTUNENCRYPT_ #define _ENCRYPTUNENCRYPT_ /*================================ Macros ========

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

参考http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html,做了个小修改,实现PHP,JAVA,Objective-c加解密结果相同.原先Android版的客户端与服务端(PHP)通讯部分内容用DES加密,加密方法:http://www.pocketdigi.com/20121112/940.html直接拷贝原文的源码,发现结果不同,原因在于,我在java和php里用的IvParameterSpec是动态的,就是key转成byt

python/shell字符串加解密

查看网上很多都是抄袭的代码,大同小异,在前辈的基础上优化代码: 可自动补全16x字符串位数,解密后移除还原 优化加密后得到的数据码为base64,更易使用 3. 增加参数实例 4. 增强代码可读性 #!/usr/bin/env python #coding: utf-8 ''' +-----------------------------------------------------------------------+ |Author: Cheng Wenfeng <[email prote

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

介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别要实现在java端用PKCS7Padding填充,需要用到bouncycastle组件来实现 所以需要一个jar 来支持.bcprov-jdk16-146.jar 下载地址:http://central.maven.org/maven2/org/bouncycastle/bcprov-jdk16/1.46/bcprov-jdk16-1.46.jar

【转】 Java 进行 RSA 加解密时不得不考虑到的那些事儿

[转] Java 进行 RSA 加解密时不得不考虑到的那些事儿 1. 加密的系统不要具备解密的功能,否则 RSA 可能不太合适 公钥加密,私钥解密.加密的系统和解密的系统分开部署,加密的系统不应该同时具备解密的功能,这样即使黑客攻破了加密系统,他拿到的也只是一堆无法破解的密文数据.否则的话,你就要考虑你的场景是否有必要用 RSA 了. 2. 可以通过修改生成密钥的长度来调整密文长度 生成密文的长度等于密钥长度.密钥长度越大,生成密文的长度也就越大,加密的速度也就越慢,而密文也就越难被破解掉.著名

实验五 TCP传输及加解密

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计                         班级:1353            姓名:陈巧然      学号:20135310 成绩:             指导教师:娄佳鹏              实验日期:2015.6.9 实验密级:         预习程度:             实验时间:15:20-18:00 仪器组次:10          必修/选修:            

openssl 加解密学习笔记

首先最近接到一个项目,这个项目中需要用到RSA的加密解密,因为之前没有接触过,在网上找了些资料,然后自己测试后发现其实使用openssl来进行加解密挺简单的,但是网上百度出来的很多又是一样的,有时候帮助不是很大,所以才想要写下来自己在搞整个加密过程遇到的一些问题,方便自己以后回头查看,也可能会帮到遇到同样的童鞋. 废话不多说,我接到的这个项目呢,有几个地方是需要用到RSA的加解密.1.使用.pfx格式的私钥签名.2.使用.cer的公钥文件进行加密操作.3.使用给定的指数与模进行公钥加密.下面有些