根据给定的信息,我们可以分析并总结出以下关于“简单加解密”的相关知识点: ### 一、概述 在计算机安全领域,加密与解密技术是保障数据安全性的重要手段之一。通过对原始信息(明文)进行特定算法处理后,转换成不可读的形式(密文),从而确保即使数据被非法截获,也无法直接解读其内容。本文介绍了一个简单的加密和解密方法,旨在实现对用户需要对外界保密的文本进行加密和解密。 ### 二、加密方法 #### 2.1 加密原理 加密过程主要基于字符的ASCII码值进行转换。具体步骤如下: 1. 将输入字符串转换为字节数组。 2. 对每个字节的整数值进行字符串形式的拼接。 3. 如果字节数组长度为偶数,则按顺序两两组合字节,并用冒号分隔;如果长度为奇数,则同样按顺序两两组合,最后将最后一个字节单独拼接到末尾。 4. 返回最终形成的字符串作为密文。 #### 2.2 Java代码实现 ```java public class Encrypt { public String AddPassword(String passinfo) { String hs = ""; String stmp = ""; if (passinfo != null && !passinfo.equals("")) { byte[] bytepass = passinfo.getBytes(); for (int n = 0; n < bytepass.length; n++) { stmp = Integer.toString(bytepass[n]); hs = hs + stmp; if (n < bytepass.length - 1) { hs = hs + ":"; } } if (bytepass.length % 2 == 0) { for (int n = 0; n < bytepass.length / 2; n++) { stmp = stmp + Integer.toString(bytepass[n]) + ":" + Integer.toString(bytepass[bytepass.length / 2 + n]); if (n != bytepass.length / 2 - 1) { stmp = stmp + ":"; } } } else { for (int n = 0; n < bytepass.length / 2; n++) { stmp = stmp + Integer.toString(bytepass[n]) + ":" + Integer.toString(bytepass[bytepass.length / 2 + n]); if (n != bytepass.length / 2 - 1) { stmp = stmp + ":"; } else { stmp = stmp + ":" + Integer.toString(bytepass[bytepass.length - 1]); } } } hs = stmp; } return hs; } } ``` ### 三、解密方法 #### 3.1 解密原理 解密过程是对加密过程的逆向操作。通过解析密文中的字符串,将其还原为原始的字符序列。具体步骤如下: 1. 分割密文字符串,得到每个字节对应的ASCII码值。 2. 将这些ASCII码值转换为字节数组。 3. 最终将字节数组转换回原始的字符串。 #### 3.2 Java代码实现 ```java public String DelPassword(String str) { String delpassword = ""; if (str != null && !str.equals("")) { String[] newstr = str.split(":"); int strtonumber = 0; byte[] b1 = new byte[newstr.length]; if (newstr.length % 2 == 0) { for (int i = 0; i < newstr.length / 2; i++) { strtonumber = Integer.parseInt(newstr[i * 2]); b1[i] = (byte) strtonumber; // 处理偶数位置 strtonumber = Integer.parseInt(newstr[i * 2 + 1]); b1[i + newstr.length / 2] = (byte) strtonumber; } } else { for (int i = 0; i < newstr.length / 2; i++) { strtonumber = Integer.parseInt(newstr[i * 2]); b1[i] = (byte) strtonumber; // 处理偶数位置 strtonumber = Integer.parseInt(newstr[i * 2 + 1]); b1[i + newstr.length / 2] = (byte) strtonumber; } // 处理最后一个字节 strtonumber = Integer.parseInt(newstr[newstr.length - 1]); b1[newstr.length - 1] = (byte) strtonumber; } // 将字节数组转换为字符串 delpassword = new String(b1); } return delpassword; } ``` ### 四、结论 上述方法提供了一种简单的加密解密方案,但需要注意的是,这种方法的安全性较低,容易受到攻击。对于更高级别的安全需求,建议采用现代加密标准如AES等加密算法。此外,为了提高系统的整体安全性,还需结合其他安全措施,例如使用安全的密钥管理策略、实施访问控制机制等。
public class encrypt
{
/**
* Title: 加密
* Company: Shanghai Anze Net
* @@author: liqiang
*/
public String AddPassword(String passinfo)
{
//加密
String hs="";
String stmp="";
if(passinfo!=null&&!passinfo.equals(""))
{ //判断字符串是否为空
byte[] bytepass=passinfo.getBytes();//把中文转换成字节
////试验////
for (int n=0;n<bytepass.length;n++)
{
stmp=Integer.toString(bytepass[n]);
hs=hs+stmp;
if (n<bytepass.length-1)
hs=hs+":";
}
System.out.println("加密前的号码:"+hs);
hs="";
stmp="";
///////////////
if(bytepass.length%2==0)
{//长度为偶数
{
stmp=stmp+Integer.toString(bytepass[n]);
stmp=stmp+":";//不是最后一个加':'
stmp=stmp+Integer.toString(bytepass[bytepass.length/2+n]);
if (n!=bytepass.length/2-1)
{ //判断是否位最后一个
stmp=stmp+":";
}
}
}
else
{ //长度为奇数
for (int n=0;n<bytepass.length/2;n++)
{
stmp=stmp+Integer.toString(bytepass[n]);
stmp=stmp+":";//不是最后一个加':'
stmp=stmp+Integer.toString(bytepass[bytepass.length/2+n]);
if (n!=bytepass.length/2-1)
{ //判断是否位最后一个
stmp=stmp+":";
}
else
{ //是最后一个
stmp=stmp+":";
stmp=stmp+Integer.toString(bytepass[bytepass.length-1]);
}
}
}
hs=stmp;
剩余5页未读,继续阅读
- 粉丝: 10
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助