公司采用公用电话传递数据,数据小于8整数位,为了确保安全,

    在转移的过程中需要加密,加密规则如下面的:

        第一个数据下降,附图然后各加5,和除以10的余数取代该数字,

        最后将第一位和最后一位数字交换。

请随意给定一个小于8位的整数,

        然后,把加密后的结果在控制台打印出来。

        

    题目要求:

        A:数据是小于8位的整数

            定义一个int类型的数据

            int number = 123456;

        B:加密规则

            a:首先将数据倒序

                结果 654321

            b:然后将每位数字都加上5。再用和除以10的余数取代该数字

                结果 109876

            c:最后将第一位和最后一位数字交换

                结果 609871

        C:把加密后的结果输出在控制台

        

        通过简单的分析,我们知道假设我们有办法把这个数据变成数组就好了。

        不是直接写成这个样子的:

            int[] arr = {1,2,3,4,5,6};

            

        怎样把数据转成数组呢?

A:定义一个数据

                int number = 123456;

            B:定义一个数组,这个时候问题就来了,数组的长度是多少呢?

                int[] arr = new int[8]; //不可能超过8

                在赋值的时候。我用一个变量记录索引的变化。

                定义一个索引值是0

                int index = 0;

            C:获取每个数据

                int ge = number%10

                int shi = number/10%10

                int bai = number/10/10%10

                

                arr[index] = ge;

                index++;

                arr[index] = shi;

                index++;

arr[index] = bai;

源码:

import java.util.Scanner;

class JiaMiMain {
public static void main(String[] args) {
// 创建键盘录入对象
Scanner sc = new Scanner(System.in); // 请输入一个数据
System.out.println("请输入一个数据(小于8位):");
int number = sc.nextInt(); // 写功能实现把number进行加密
// 调用
String result = jiaMi(number);
System.out.println("加密后的结果是:" + result);
} /*
* 需求:写一个功能,把数据number实现加密。 两个明白: 返回值类型:String 做一个字符串的拼接。 參数列表:int number
*/
public static String jiaMi(int number) {
// 定义数组
int[] arr = new int[8]; // 定义索引
int index = 0; // 把number中的数据想办法放到数组中
while (number > 0) {
arr[index] = number % 10;
index++;
number /= 10;
} // 把每一个数据加5,然后对10取得余数
for (int x = 0; x < index; x++) {
arr[x] += 5;
arr[x] %= 10;
} // 把第一位和最后一位交换
int temp = arr[0];
arr[0] = arr[index - 1];
arr[index - 1] = temp; // 把数组的元素拼接成一个字符串返回
// 定义一个空内容字符串
String s = ""; for (int x = 0; x < index; x++) {
s += arr[x];
} return s;
}
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

数字使用相应的加密策略传递一个字符串后Java实现代码的更多相关文章

  1. 创建一个计算器的函数calc含有两个数字,调用函数的函数传递一个函数,分别是实现加减乘除

    function calc(num){ var n1=8; var n2=2; num(n1,n2); } //加 functiong jia(a,b){ console.log( a+b ); } ...

  2. 统计一个字符串中"java"出现的次数

    public class CountJava{ public static void main(String[] args){ String str = "dnajjavaNISLjavaE ...

  3. SSL/TLS/WTLS原理(密钥协商的形象化比喻:验证服务器的身份,用服务器的公钥协商加密格式,然后再加密具体的消息,TCP传递SSL处理后的数据)good

    一 前言 首先要澄清一下名字的混淆: 1 SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议.这种协议在WEB上获得了广泛的应用. 2 IETF( ...

  4. PHP加密解密数字,适用于URL加密。

    本博主最近正在建设一个9元包邮的网站,希望各位光临指导一些意见: 9元包邮 http://www.jiubaou.com/ <?php /** * 加密解密类 * 该算法仅支持加密数字.比较适用 ...

  5. JDK1.8.0_181的无限制强度加密策略文件变动(转载)

    JDK1.8.0_181的无限制强度加密策略文件变动 原文地址 https://my.oschina.net/my1313677/blog/3109613 作者 葉者 日常记录 2019/09/23 ...

  6. 介绍对称加密的另一个算法——PBE

    除了DES,我们还知道有DESede(TripleDES,就是3DES).AES.Blowfish.RC2.RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法 ...

  7. 【编程题目】n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始

    第 18 题(数组):题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始,每次从这个圆圈中删除第 m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数字).当一个数字删除后, ...

  8. java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”

    在javascript中有一个方法isDigit()使用来判断一个字符串是否都是数字,在java的字符串处理方法中没有这样的方法,觉得常常需要用到,于是上网搜了一下,整理出了两个用正则表达式匹配的判断 ...

  9. Delphi动态事件深入分析(对象方法在调用的时候会传递一个隐含的Self指针,而该指针的值在EAX中。即左边第一个参数)

    Delphi动态事件深入分析 2009-2-7 作者:不得闲核心提示:本实验证明了在类中方法的调用时候,所有的方法都隐含了一个Self参数,并且该参数作为对象方法的第一个参数传递... 首先做一个空窗 ...

随机推荐

  1. 玩转html5(五)---月球绕着地球转,地球绕着太阳转(canvas实现,同样可以动哦)

    关于运动速度的参数与真实速度有点差距,大家可以自行调整 <!DOCTYPE html> <html> <head> <meta http-equiv=&quo ...

  2. JavaScript获取路径

    JavaScript获取路径 1.设计源代码 <%@ page language="java" import="java.util.*" pageEnco ...

  3. C++ Primer注意事项11_运算符重载_算术/关系运算符_下标运算符

    1.算术/关系运算符 平时,定义成非成员函数以同意左右側运算对象进行转换.由于这些运算符一般不须要改变运算对象的状态,所以形參都是常量的引用. 以"+"号运算符为例: Person ...

  4. ORACLE触发特定的解释

    ORACLE PL/SQL编程八: 把触发器说透 本篇主要内容例如以下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 ...

  5. linux下一个oracle11G DG建立(一个):准备环境

    linux下一个oracle11G  DG建立(一个):准备环境 周围环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g ...

  6. UVA 11149 - Power of Matrix(矩阵乘法)

    UVA 11149 - Power of Matrix 题目链接 题意:给定一个n*n的矩阵A和k,求∑kiAi 思路:利用倍增去搞.∑kiAi=(1+Ak/2)∑k/2iAi,不断二分就可以 代码: ...

  7. linux基础知识1

    1. 硬盘分区 分区类型:主分区,扩展分区.逻辑分区: 分区规则: 一个硬盘仅仅能有1到4个主分区: 一个硬盘仅仅能有1个扩展分区: 一个硬盘的主分区和扩展分区最多仅仅能有4个. 扩展分区仅仅能用来包 ...

  8. Effective JavaScript Item 21 使用apply方法调用函数以传入可变參数列表

    本系列作为Effective JavaScript的读书笔记. 以下是一个拥有可变參数列表的方法的典型样例: average(1, 2, 3); // 2 average(1); // 1 avera ...

  9. JAVA 公众微信的开放源码项目管理合作伙伴招募的版本号

    大家好:       jeecg开源社区.现在正在进行"JAVA 开放源码的版本号项目微信公共账号"工作,有兴趣的朋友一起參与. 截止时间:20140510 採用技术: 1. JE ...

  10. [原创].NET 业务框架开发实战之六 DAL的重构

    原文:[原创].NET 业务框架开发实战之六 DAL的重构 .NET 业务框架开发实战之六 DAL的重构 前言:其实这个系列还是之前的".NET 分布式架构开发实战 ",之所以改了 ...