Java實(shí)現(xiàn)簡(jiǎn)單密碼加密功能
本文實(shí)例為大家分享了Java實(shí)現(xiàn)簡(jiǎn)單密碼加密案例,供大家參考,具體內(nèi)容如下
需求:
首先將一組數(shù)據(jù)倒序,然后將每位數(shù)字都加上5,再用和除以10的余數(shù)代替該數(shù)字,
最后將第一位和最后一位數(shù)字交換。 請(qǐng)任意給定一個(gè)小于8位的整數(shù),
然后,把加密后的結(jié)果在控制臺(tái)打印出來(lái)。
分析:
1.數(shù)據(jù)小于8位數(shù)
2.數(shù)據(jù)倒序
3.每位數(shù)字都加上5,再用和除以10的余數(shù)代替該數(shù)字
4.最后將第一位和最后一位數(shù)字交換
5.打印輸出
代碼實(shí)現(xiàn):
public class Encrypt{
public static void main(String[] args){
//定義小于8位的數(shù)據(jù)
int number = 123456;
//定義一個(gè)數(shù)組,,小于8位
int[] arr = new int[8];
//將定義的數(shù)據(jù),進(jìn)行倒序
int index = 0;
while(number > 0){
//數(shù)據(jù)求余運(yùn)算,將余數(shù)存儲(chǔ)進(jìn)數(shù)組中,第一次運(yùn)算得到6
arr[index] = number%10;
index++;
//數(shù)據(jù)除10
number /= 10;
}
//每位數(shù)字都加上5,再用和除以10的余數(shù)代替該數(shù)字
for(int x = 0;x<index;x++){
arr[x] += 5;
arr[x] %= 10;
}
//最后將第一位和最后一位數(shù)字交換
int temp = arr[0];
arr[0] = arr[index-1];
arr[index-1] = temp;
//輸出數(shù)據(jù)
for(int x = 0;x<index;x++){
System.out.println(arr[x]);
}
}
}
運(yùn)行結(jié)果:

可進(jìn)行優(yōu)化:
- 通過鍵盤輸入數(shù)據(jù)(小于八位)
- 通過調(diào)用方法的方式
import java.util.Scanner;
public class Encrypt {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入密碼(小于八位):");
int number2 = sc.nextInt();
String result = Encrypt(number2);
System.out.println("加密后的密碼:"+result);
}
//字符串類型
public static String Encrypt(int number2){
int []arr = new int[8];
int index = 0;
while (number2 > 0) {
arr[index] = number2 % 10;
index++;
number2 /= 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;
//把數(shù)組元素拼接成字符串返回
//定義一個(gè)空字符串
String s = "";
for (int x = 0;x<index;x++){
s += arr[x];
}
return s;
}
}
運(yùn)行結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java 凍結(jié)或解除凍結(jié)Excel中的行和列的方法
這篇文章主要介紹了Java 凍結(jié)或解除凍結(jié)Excel中的行和列的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Java 如何快速實(shí)現(xiàn)一個(gè)連接池
有沒有一個(gè)通用的庫(kù)可以快速實(shí)現(xiàn)一個(gè)線程池呢?得益于 Java 完善的生態(tài),前人們針對(duì)這種需要開發(fā)了一個(gè)通用庫(kù):Apache Commons Pool(下文簡(jiǎn)稱 ACP)。本質(zhì)上來(lái)說(shuō),ACP 庫(kù)提供的是管理對(duì)象池的通用能力,當(dāng)然也可以用來(lái)管理連接池了!2021-05-05
Java List簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java中可變數(shù)組的原理就是不斷的創(chuàng)建新的數(shù)組,將原數(shù)組加到新的數(shù)組中,下文對(duì)Java List用法做了詳解。需要的朋友參考下吧2017-05-05
使用@ConditionalOnProperty控制是否加載的操作
這篇文章主要介紹了使用@ConditionalOnProperty控制是否加載的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
解決 java.lang.NoSuchMethodError的錯(cuò)誤
這篇文章主要介紹了解決 java.lang.NoSuchMethodError的錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下2017-06-06
RabbitMQ的Direct Exchange模式實(shí)現(xiàn)的消息發(fā)布案例(示例代碼)
本文介紹了RabbitMQ的DirectExchange模式下的消息發(fā)布和消費(fèi)的實(shí)現(xiàn),詳細(xì)說(shuō)明了如何在DirectExchange模式中進(jìn)行消息的發(fā)送和接收,以及消息處理的基本方法,感興趣的朋友跟隨小編一起看看吧2024-09-09
SpringBoot創(chuàng)建WebService方法詳解
這篇文章主要介紹了SpringBoot如何創(chuàng)建WebService,文中有詳細(xì)的實(shí)現(xiàn)步驟以及示例代碼,對(duì)學(xué)習(xí)或工作有一定的幫助,需要的朋友跟著小編一起來(lái)學(xué)習(xí)吧2023-05-05
使用Springboot實(shí)現(xiàn)獲取某個(gè)城市當(dāng)天的天氣預(yù)報(bào)
這篇文章主要為大家詳細(xì)介紹了使用Springboot實(shí)現(xiàn)獲取某個(gè)城市當(dāng)天的天氣預(yù)報(bào)的相關(guān)知識(shí),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04

