数字加密

java中使用数组对数字进行简单的加密。

数字加密

需求:

某系统的数字密码:比如1983,采用加密方式进行传输,规则如下:
先得到每位数,然后每位数都加上5,再对10取余,最后将所有的数字反转,得到一组新数。

核心逻辑:

  • 1.定义两个变量分别占数组的首位位置。
  • 2.一个变量往前走,一个变量往后走,同步交换双方的位置处的值。

打码展示:

//1.定义一个输入存入需要加密的数字
        System.out.println("请输入所加密数字个数:");
        Scanner scanner = new Scanner(System.in);
        int length =scanner.nextInt();
        int[] arr = new int[length];

        //2.录入需要加密数字
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入加密的第"+(i+1)+"个数字");
            int number = scanner.nextInt();
            arr[i] = number;
        }

        //3.打印加密前得数据
        System.out.println("加密前的数据:");
        printArray(arr);
        System.out.println();
        //4.核心逻辑(对数组中的数据进行加密)
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (arr[i] + 5) % 10;
        }

        //5.核心逻辑(对数组中加密数据进行反转得到结果)
        for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
            //直接交换左右对应位置的值
            int temp = arr[j];
            arr[j] = arr[i];
            arr[i] = temp;

        }
        System.out.println("加密后的数据:" );
        printArray(arr);

输出数组的方法

public static void printArray(int[] arr) {
        System.out.print("[ ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i==arr.length-1?arr[i]:arr[i]+" ");
        }
        System.out.print(" ]");

代码核心逻辑来自黑马案例六

Original: https://www.cnblogs.com/zhangyouren/p/16402084.html
Author: Haziy
Title: 数字加密

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622555/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL45讲之生产环境下的性能问题

    本文介绍了一些常见的性能问题以及如何在生产环境中解决这些问题。 [En] This article introduces some common performance probl…

    数据库 2023年5月24日
    0111
  • MySQL慢查询优化问题-解决办法

    根据发现的问题,找出原因,然后对症下药。 [En] According to the problems found, find the cause, and then prescr…

    数据库 2023年5月24日
    097
  • Java8 Stream

    什么是Stream Java8 API添加了一个新的抽象称为流Stream,可以以一种声明的方式处理数据,给我们操作集合(Collection)提供了极大的便利。Stream将要处…

    数据库 2023年6月6日
    088
  • SQL注入学习

    SQL注入学习——资源、笔记整理 OWASP-top10(2021) SQL注入产生原因:注入产生的原因是接受相关参数未经处理直接带入数据库查询操作;注入攻击属于服务端攻击,他与操…

    数据库 2023年6月9日
    079
  • lamp

    lamp 1. lamp简介 2. web服务器工作流程 2.1 cgi与fastcgi 2.2 httpd与php结合的方式 2.3 web工作流程 3. lamp平台搭建 3….

    数据库 2023年5月24日
    098
  • Java 多线程学习笔记

    多线程 在单个程序中同时运行多个线程完成不同的工作,称为多线程(提升整体处理性能) 线程是程序的最小单位,相对独立的可调用单元,是 CPU 最小基本单位; 在同一个程序中不同的线程…

    数据库 2023年6月11日
    082
  • IntelliJ IDEA 断开svn连接

    1 设置菜单 2 进入pluglns 菜单,点击 browse repositonries….. 3 搜索 svn disconnect,然后安装插件 4 安装插件后,…

    数据库 2023年6月6日
    0165
  • asyncio 异步编程

    首先了解一下协程,协程的本质就是一条线程,多个任务在一条线程上来回切换,协程的所有切换都是基于用户,只有在用户级别才能感知到的 IO 才会用协程模块来规避,在 python 中主要…

    数据库 2023年6月9日
    064
  • jdbc分页

    一、最低级分页 resources下的db.properties db.driver=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://lo…

    数据库 2023年6月9日
    0102
  • idea的使用技巧和必要的设置

    idea 如何开启多个线程 打开下面按钮,然后运行相同的代码即可 打开idea需要选择打开哪一个项目 设置如下,关闭下面选项即可 posted @2022-06-17 21:07 …

    数据库 2023年6月14日
    094
  • cobbler

    cobbler 1. cobbler简介 2. cobbler服务端部署 cobbler简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速…

    数据库 2023年6月14日
    077
  • MySQL中的全表扫描和索引树扫描

    引言 在学习mysql时,我们经常会使用explain来查看sql查询的索引等优化手段的使用情况。在使用explain时,我们可以观察到,explain的输出有一个很关键的列,它就…

    数据库 2023年5月24日
    0143
  • 数据类型拓展

    public class Demo03 { public static void main(String[] args) { //整数拓展 :进制 二进制0b 十进制 八进制0 十…

    数据库 2023年6月11日
    074
  • Pisa-Proxy SQL 解析之 Lex & Yacc

    一、前言 1.1 作者介绍 王波,SphereEx MeshLab 研发工程师,目前专注于 Database Mesh,Cloud Native 的研发。Linux,llvm,ya…

    数据库 2023年6月16日
    0110
  • 今日🎸吉他练到这儿

    本文来自博客园,作者:ukyo–BlackJesus,转载请注明原文链接:https://www.cnblogs.com/ukzq/p/16750421.html Or…

    数据库 2023年6月11日
    0101
  • Executor 创建线程

    Executors创建有四种创建方式: newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIF…

    数据库 2023年6月9日
    0105
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球