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)打印出來。
分析:
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反射獲取所有Controller和RestController類的方法
這篇文章給大家分享了Java反射獲取所有Controller和RestController類的方法,文中有詳細(xì)的代碼示例講解,具有一定的參考價(jià)值,需要的朋友可以參考下2023-08-08
Springboot-dubbo-fescar 阿里分布式事務(wù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Springboot-dubbo-fescar 阿里分布式事務(wù)的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
Intellij Idea 多模塊Maven工程中模塊之間無法相互引用問題
這篇文章主要介紹了Intellij Idea 多模塊Maven工程中模塊之間無法相互引用問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Java后端向前端返回文件流實(shí)現(xiàn)下載功能
后端可以使用Java中servlet提供的HttpServletResponse,核心步驟是要設(shè)置響應(yīng)的數(shù)據(jù)類型,設(shè)置為某一類文件類型或二進(jìn)制格式,以及響應(yīng)頭,然后用ServletOutputStream將文件以流的形式發(fā)送到前端,本文介紹Java后端向前端返回文件流實(shí)現(xiàn)下載功能,感興趣的朋友一起看看吧2023-12-12
Java中JDom解析XML_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JDOM是一種解析XML的Java工具包。DOM適合于當(dāng)今流行的各種語言,包括Java,JavaScripte,VB,VBScript,Perl,C,C++等。下面通過本文給大家介紹Java中JDom解析XML的方法,感興趣的朋友一起學(xué)習(xí)吧2017-07-07
springboot無法從靜態(tài)上下文中引用非靜態(tài)變量的解決方法
這篇文章主要介紹了springboot無法從靜態(tài)上下文中引用非靜態(tài)變量的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06
解讀List?list=new?ArrayList()是怎么回事
這篇文章主要介紹了解讀List?list=new?ArrayList()是怎么回事,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
SpringBoot遠(yuǎn)程訪問redis服務(wù)器問題剖析
使用了SpringBoot的項(xiàng)目,在遠(yuǎn)程連接Redis服務(wù)器時(shí),會(huì)遇倒一些小問題,下面通過本文給大家全面解析SpringBoot遠(yuǎn)程訪問redis服務(wù)器問題,需要的朋友參考下吧2017-04-04
spring boot 即時(shí)重新啟動(dòng)(熱更替)使用說明
這篇文章主要介紹了spring boot 即時(shí)重新啟動(dòng)(熱更替)的相關(guān)資料,需要的朋友可以參考下2017-12-12
Java 數(shù)據(jù)結(jié)構(gòu)線性表之順序存儲(chǔ)詳解原理
線性表的順序存儲(chǔ)是指用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表中的各個(gè)元素、使得線性表中在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲(chǔ)在相鄰的物理存儲(chǔ)單元中,即通過數(shù)據(jù)元素物理存儲(chǔ)的相鄰關(guān)系來反映數(shù)據(jù)元素之間邏輯上的相鄰關(guān)系2021-10-10

