字符串的加密,解密;加密规则为:字符串中的每个字符加4,之后字符串进行倒置; 如用户输入为“abcd“,
发布网友
发布时间:2022-04-23 07:03
我来回答
共4个回答
懂视网
时间:2022-04-23 11:24
1.最简单的加密与解密
用escape与unescape进行编码与解码字符串,例如“你好”加密后变为“%u4F60%u597D”,看不懂吧,如果是加密js的话,运行时可以解密后使用eval函数执行。
缺点:不能加密数字和英文,而且解密方法大家都懂得。
2.自写解密函数法
// 加密函数function compile(code) {
var c=String.fromCharCode(code.charCodeAt(0)+code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));
}
return escape(c);
}
// 解密函数function uncompile(code) {
code=unescape(code);
var c=String.fromCharCode(code.charCodeAt(0)-code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));
}
return c;
}
3.其他加密方法
使用Microsoft出品的脚本编码器Script Encoder来进行编码 ,加空格、斜杠、Tab等字符来混乱编码…这些编码感觉不是很优雅,就不说了。。。
4.DES、AES、RSA、Base64、MD5、CHA1加密
这几种专业加密的方式,自行搜索…
1.最简单的加密与解密
用escape与unescape进行编码与解码字符串,例如“你好”加密后变为“%u4F60%u597D”,看不懂吧,如果是加密js的话,运行时可以解密后使用eval函数执行。
缺点:不能加密数字和英文,而且解密方法大家都懂得。
2.自写解密函数法
// 加密函数function compile(code) {
var c=String.fromCharCode(code.charCodeAt(0)+code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));
}
return escape(c);
}
// 解密函数function uncompile(code) {
code=unescape(code);
var c=String.fromCharCode(code.charCodeAt(0)-code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));
}
return c;
}
3.其他加密方法
使用Microsoft出品的脚本编码器Script Encoder来进行编码 ,加空格、斜杠、Tab等字符来混乱编码…这些编码感觉不是很优雅,就不说了。。。
4.DES、AES、RSA、Base64、MD5、CHA1加密
这几种专业加密的方式,大家可以在Gxl网搜索哦。
热心网友
时间:2022-04-23 08:32
System.Console.WriteLine("请选择输入要加密的字符串(输入1)还是输入要解密的字符串(输入2):");
int temp = int.Parse(System.Console.ReadLine());
if (temp == 1)
{
System.Console.WriteLine("请输入要加密的字符串:");
String str = System.Console.ReadLine(), strc = "";
char[] chs = new char[str.Length];
int j = 0;
foreach (char ch in str)
{
chs[j++] = ch;
}
for (j = 0; j < chs.Length; j++)
{
chs[j] = Convert.ToChar(Convert.ToInt32(chs[j]) + 4);
}
for (j = chs.Length - 1; j >= 0; j--)
{
strc = strc + chs[j];
}
System.Console.WriteLine("加密后的字符串:");
System.Console.WriteLine(strc);
}
else if (temp == 2)
{
System.Console.WriteLine("请输入要解密的字符串:");
String str = System.Console.ReadLine(), strc = "";
char[] chs = new char[str.Length];
int j = 0;
foreach (char ch in str)
{
chs[j++] = ch;
}
for (j = 0; j < chs.Length; j++)
{
chs[j] = Convert.ToChar(Convert.ToInt32(chs[j]) - 4);
}
for (j = chs.Length - 1; j >= 0; j--)
{
strc = strc + chs[j];
}
System.Console.WriteLine("解密后的字符串:");
System.Console.WriteLine(strc);
}
else
{
System.Console.WriteLine("输入有误,退出");
return;
}
System.Console.WriteLine();
热心网友
时间:2022-04-23 09:50
JAVA实现:
public class Cat {
public static void main(String[] args) {
String str = "abcd";
String encrypt = encrypt(str);
String decode = decode(encrypt);
System.out.println(str + " -->Encryed string is: " + encrypt);
System.out.println(encrypt + "--> Original string is: " + decode);
}
private static String encrypt(String str) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < str.length(); i++){
char c = str.charAt(i);
int cAdded = ((int)c) + 4;
sb.append((char)cAdded);
}
return sb.reverse().toString();
}
private static String decode(String str) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < str.length(); i++){
char c = str.charAt(i);
int value = (int)c - 4;
sb.append((char)value);
}
return sb.reverse().toString();
}
}
----------------
abcd -->Encryed string is: hgfe
hgfe--> Original string is: abcd追问C#
追答我不会用C#哦。。
不过算法C#也类似。取得每一个字符,加密的时候+4,然后反向。解密的时候每个字符-4,然后再反向
热心网友
时间:2022-04-23 11:25
expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
写得一个方法,调用就好
private string Code(string s)
{
int length = s.Length;
char[] code = new char[100];
string final = "";
for (int i = 0; i < s.Length; i++)
{
length--;
code[length] = (char)(s[i] + 4);
}
for (int j = 0; j < s.Length; j++)
{
final += code[j];
}
return final.Trim();
}追问纠结 我怎么想不到