愷撒密碼Java/Python實現
package com.hjc.demo.logic.caesarpassword;
import java.util.Arrays;
import java.util.Objects;
/**
* @Classname CaesarPassword
* @Description TODO
* @Date 2021/7/23 14:09
* @Created by Mr.He
* TODO 愷撒密碼
*/
public class CaesarPassword {
/* 愷撒密碼錶 */
final String[] objeStrings = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
final int ZERO = 0;
final int >
/*
* TODO 程式主體
* dense 加密解密標識 0 :外匯跟單gendan5.com加密 1 :解密
* value 密文
* key 密匙
*/
public String mainBodyOfTheProgram(String value, int key, int dense) {
if (value == null) {
return null;
}
int[] ints = new int[value.length()];
for (int i = 0; i < value.length(); i++) {
char c = value.charAt(i);
ints[i] = elementIndex(objeStrings, String.valueOf(c));
}
int fatherKey = 0;
String result = "";
for (int i : ints) {
if (Objects.equals(dense, ZERO)) {
fatherKey = i + key;
}
if (Objects.equals(dense, ONE)) {
if (i <= key) {
fatherKey = Math.abs((i - key) + objeStrings.length);
} else {
fatherKey = i - key;
}
}
if (fatherKey >= objeStrings.length) {
result += objeStrings[Math.abs((fatherKey) - objeStrings.length)];
continue;
}
result += objeStrings[Math.abs((fatherKey))];
}
return result;
}
/*
* TODO 獲取下標
* */
public int elementIndex(String[] ints, String value) {
for (int i = 0; i < ints.length; i++) {
if (Objects.equals(ints[i], value)) {
return i;
}
}
return -1;
}
public static void main(String[] args) {
CaesarPassword caesarPassword = new CaesarPassword();//NQXG
System.out.println(" 愷撒密碼加密 " + caesarPassword.mainBodyOfTheProgram("LOVE", 2, 0));
System.out.println(" 愷撒密碼解密 " + caesarPassword.mainBodyOfTheProgram(caesarPassword.mainBodyOfTheProgram("LOVE", 2, 0), 2, 1));
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2783383/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python實現密碼破解Python密碼
- PAT1076 WiFi密碼(java實現)WiFi密碼Java
- 凱撒密碼加解密過程與破解原理密碼解密
- 密碼學課程設計 - 混合密碼的實現密碼學
- python 建立密碼Python密碼
- Hill密碼(Java)密碼Java
- 用Abp實現找回密碼和密碼強制過期策略密碼
- C# 實現記住密碼功能C#密碼
- 現代密碼-公鑰密碼RSA密碼
- 50行程式碼實現3D模擬真實撒金幣動效行程3D
- Java實現密碼、檔案MD5加密,密碼sha256、sha384、sha512Hex等加密Java密碼加密
- 【超硬核】- python 3分鐘實現暴力破解wifi密碼EXE應用PythonWiFi密碼
- flask框架如何實現修改密碼和免密登入功能Flask框架密碼
- indexOf原理,Java,javascript,python實現IndexJavaScriptPython
- Go 如何實現 PHP 的密碼加密解密GoPHP密碼加密解密
- gitlab實現https及管理員密碼找回GitlabHTTP密碼
- 安卓實現賬號密碼儲存安卓密碼
- AI來實現程式碼轉換!Python轉Java,Java轉Go不在話下?AIPythonJavaGo
- SSH配置—Linux下實現免密碼登入Linux密碼
- Android-實現記住賬號密碼功能Android密碼
- 網站密碼顯隱功能實現視訊網站密碼
- 一個PHP通用隨機密碼的實現PHP隨機密碼
- FoxMail 本地密碼破解(提取) ,逆向分析與實現AI密碼
- RxJS 實現摩斯密碼(Morse) 【內附腦圖】JS密碼
- Python課程程式碼實現Python
- java實現二維碼生成Java
- 快應用如何實現密碼明文和密文切換顯示密碼
- app直播原始碼,平臺登入頁面實現和修改密碼頁面實現APP原始碼密碼
- app直播原始碼,Node.js實現密碼雜湊加密APP原始碼Node.js密碼加密
- 實際序列密碼密碼
- 2-54. 製作 CropManager 實現撒種子的事件事件
- SharedPreferences實現記住密碼----自動登入功能密碼
- 動態密碼演算法介紹與實現密碼演算法
- springboot 實現郵箱找回密碼(使用到redis, stmp)Spring Boot密碼Redis
- 迴圈碼、卷積碼及其python實現卷積Python
- Java 實現的SnowFlake生成UUID (Java程式碼實戰-007)JavaUI
- 密碼學與密碼安全:理論與實踐密碼學
- Java實現過濾中文亂碼Java