我们如何在 java 中创建我们自己的字符串编码解码或加密解密脚本而不使用任何给定的库,即 Base64、AES 等?
How can we create our own string encoding-decoding or encryption-decryption script in java without using any given library i.e. Base64, AES, etc?
我们如何在 java 中创建我们自己的字符串编码解码或加密解密脚本而不使用任何给定的库,即 Base64、AES 等?
根据我的客户要求,他想要一些用户可以决定将特定 letter/number 替换为由同一用户再次选择的 letter/number 的东西。所以我只是想让它确认是否有可能这样做? 如有任何建议,我们将不胜感激!
用一个值(要替换的值)维护 Key(被替换的值)的 HashMap,只需使用一个简单的函数更改字符串即可。
import java.util.HashMap;
import java.util.Map.Entry;
public class Encrypt {
/**
* @param args
*/
static HashMap<String, String> hm = new HashMap();
public static void main(String[] args) {
// TODO Auto-generated method stub
hm.put("a", "b");
hm.put("b", "c");
hm.put("c", "d");
hm.put("d", "e");
hm.put("e", "f");
hm.put("f", "g");
hm.put("g", "h");
hm.put("h", "i");
hm.put("i", "j");
hm.put("j", "k");
hm.put("k", "l");
hm.put("l", "m");
hm.put("m", "n");
hm.put("1", "4");
hm.put("2", "3");
hm.put("3", "2");
hm.put("4", "1");
hm.put("5", "0");
String input = "this is a simple text";
String text = encode(input);
System.out.println(text);
System.out.println(decode(text));
}
private static String decode(String input) {
// TODO Auto-generated method stub
StringBuffer output = new StringBuffer();
for(int i = 0; i < input.length(); i++)
{
String ch = input.charAt(i)+"";
if(hm.containsValue(ch))
{
for (Entry<String, String> entry : hm.entrySet()) {
if (entry.getValue().equals(ch)) {
output.append(entry.getKey());
}
}
}
else
{
output.append(ch);
}
}
return output.toString();
}
private static String encode(String input) {
// TODO Auto-generated method stub
StringBuffer output = new StringBuffer();
for(int i = 0; i < input.length(); i++)
{
String ch = input.charAt(i)+"";
if(hm.containsKey(ch))
{
output.append(hm.get(ch));
}
else
{
output.append(ch);
}
}
return output.toString();
}
}
编辑
不推荐这样,好像有人把顺序打乱了他就可以轻松认识所有的文字。
我们如何在 java 中创建我们自己的字符串编码解码或加密解密脚本而不使用任何给定的库,即 Base64、AES 等?
根据我的客户要求,他想要一些用户可以决定将特定 letter/number 替换为由同一用户再次选择的 letter/number 的东西。所以我只是想让它确认是否有可能这样做? 如有任何建议,我们将不胜感激!
用一个值(要替换的值)维护 Key(被替换的值)的 HashMap,只需使用一个简单的函数更改字符串即可。
import java.util.HashMap;
import java.util.Map.Entry;
public class Encrypt {
/**
* @param args
*/
static HashMap<String, String> hm = new HashMap();
public static void main(String[] args) {
// TODO Auto-generated method stub
hm.put("a", "b");
hm.put("b", "c");
hm.put("c", "d");
hm.put("d", "e");
hm.put("e", "f");
hm.put("f", "g");
hm.put("g", "h");
hm.put("h", "i");
hm.put("i", "j");
hm.put("j", "k");
hm.put("k", "l");
hm.put("l", "m");
hm.put("m", "n");
hm.put("1", "4");
hm.put("2", "3");
hm.put("3", "2");
hm.put("4", "1");
hm.put("5", "0");
String input = "this is a simple text";
String text = encode(input);
System.out.println(text);
System.out.println(decode(text));
}
private static String decode(String input) {
// TODO Auto-generated method stub
StringBuffer output = new StringBuffer();
for(int i = 0; i < input.length(); i++)
{
String ch = input.charAt(i)+"";
if(hm.containsValue(ch))
{
for (Entry<String, String> entry : hm.entrySet()) {
if (entry.getValue().equals(ch)) {
output.append(entry.getKey());
}
}
}
else
{
output.append(ch);
}
}
return output.toString();
}
private static String encode(String input) {
// TODO Auto-generated method stub
StringBuffer output = new StringBuffer();
for(int i = 0; i < input.length(); i++)
{
String ch = input.charAt(i)+"";
if(hm.containsKey(ch))
{
output.append(hm.get(ch));
}
else
{
output.append(ch);
}
}
return output.toString();
}
}
编辑
不推荐这样,好像有人把顺序打乱了他就可以轻松认识所有的文字。