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-08Springboot-dubbo-fescar 阿里分布式事務(wù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Springboot-dubbo-fescar 阿里分布式事務(wù)的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03Intellij Idea 多模塊Maven工程中模塊之間無法相互引用問題
這篇文章主要介紹了Intellij Idea 多模塊Maven工程中模塊之間無法相互引用問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Java后端向前端返回文件流實(shí)現(xiàn)下載功能
后端可以使用Java中servlet提供的HttpServletResponse,核心步驟是要設(shè)置響應(yīng)的數(shù)據(jù)類型,設(shè)置為某一類文件類型或二進(jìn)制格式,以及響應(yīng)頭,然后用ServletOutputStream將文件以流的形式發(fā)送到前端,本文介紹Java后端向前端返回文件流實(shí)現(xiàn)下載功能,感興趣的朋友一起看看吧2023-12-12Java中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-07springboot無法從靜態(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-06SpringBoot遠(yuǎn)程訪問redis服務(wù)器問題剖析
使用了SpringBoot的項(xiàng)目,在遠(yuǎn)程連接Redis服務(wù)器時(shí),會(huì)遇倒一些小問題,下面通過本文給大家全面解析SpringBoot遠(yuǎn)程訪問redis服務(wù)器問題,需要的朋友參考下吧2017-04-04spring boot 即時(shí)重新啟動(dòng)(熱更替)使用說明
這篇文章主要介紹了spring boot 即時(shí)重新啟動(dòng)(熱更替)的相關(guān)資料,需要的朋友可以參考下2017-12-12Java 數(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