DES算法的界定 DES全称之为Data Encryption Standard,即数据信息加密规范,是一种应用密钥加密的块算法,是1972年英国IBM企业研制开发的对应登陆密码体系加密算法。其密钥长短为56位,密文按64位开展分类,将分组后的密文组和56位的密钥按位取代或互换的方式 产生保密组的加密方式。
DES算法的历史时间 英国国家标准局1973年逐渐科学研究除国防部长外的其他单位的计算机软件的数据信息加密规范,于1973年5月15日和1974年8月27日依次2次向群众传出了征询加密算法的公示。加密算法要到达的目地(通常称之为DES 登陆密码算法规定)关键为下述四点:
☆给予优质的个人信息保护,避免数据信息没经认证的泄漏和未被觉察的改动;
☆具备非常高的多元性,促使破解的花销超出很有可能得到的权益,与此同时又要有利于了解和把握;
☆DES登陆密码体系的稳定性应当不依赖于算法的信息保密,其安全系数仅以加密密钥的信息保密为基本;
☆完成经济发展,运作合理,而且适用多种多样彻底不一样的运用。
1977年1月,美政府施行:采取IBM公司设计的计划方案做为非商业秘密数据信息的宣布数据信息加密规范(DES Data Encryption Standard)。
DES加密算法特性 分类较为短、密钥过短、登陆密码生命期短、计算速率比较慢。
DES算法的基本原理 DES算法的通道主要参数有三个:Key、Data、Mode。
Key为8个字节数共64位,是DES算法的工作中密钥;
Data也为8个字节数64位,是要被加密或被解密的数据信息;
Mode为DES的工作方式,有二种:加密或解密。
为了更好地互联网上信息传送的安全性(避免第三方盗取信息见到密文),推送发和接受方各自开展加密和解密,那样信息在互联网上传递的情况下便是相对性可靠的。
DES算法的运用 现阶段在中国,伴随着三金工程尤其是金卡工程的运行,DES算法在POS、ATM、磁条卡及感应卡(IC卡)、加气站、高速路检查站等行业被广泛运用,为此来完成重要信息的信息保密,如银行信用卡用户的PIN的加密传送,IC卡与POS间的双重验证、证券交易数据的MAC校检等,均使用DES算法。
Java的DES加密事例
import java.security.SecureRandom;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.SecretKeyFactory;
import javax.crypto.SecretKey;
import javax.crypto.Cipher;
/**
* DES加密详细介绍 DES是一种对称性加密算法,所说对称性加密算法即:加密和解密应用同样密钥的算法。DES加密算法源于IBM的科学研究,
* 之后被美政府宣布选用,以后逐渐普遍广为流传,可是近几年来应用越来越低,由于DES应用56位密钥,以当代计算水平,
* 24钟头内就能被破译。尽管如此,在一些简易运用中,大家依然可以应用DES加密算法,文中简易解读DES的JAVA完成 。
* 留意:DES加密和解密全过程中,密钥长短都一定是8的倍率
*/
public class DES
{
public DES()
{
}
// 检测
public static void main(String args[])
{
// 待加密具体内容
String str = “检测具体内容”;
// 登陆密码,长短如果8的倍率
String password = “9588028820109132570743325311898426347857298773549468758875018579537757772163084478873699447306034466200616411960574122434059469100235892702736860872901247123456”;
byte[] result = DES.encrypt(str.getBytes(), password);
System.out.println(“加密后:” new String(result));
// 立即将如上具体内容解密
try
{
byte[] decryResult = DES.decrypt(result, password);
System.out.println(“解密后:” new String(decryResult));
} catch (Exception e1)
{
e1.printStackTrace();
}
}
/**
* 加密
*
* @param datasource
* byte[]
* @param password
* String
* @return byte[]
*/
public static byte[] encrypt(byte[] datasource, String password)
{
try
{
SecureRandom random = new SecureRandom();
DESKeySpec desKey = new DESKeySpec(password.getBytes());
// 建立一个密匙加工厂,随后用它把DESKeySpec转化成
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(“DES”);
SecretKey securekey = keyFactory.generateSecret(desKey);
// Cipher对象具体进行加密操作
Cipher cipher = Cipher.getInstance(“DES”);
// 用密匙复位Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey, random);
// 如今,获取信息并加密
// 宣布实行加密操作
return cipher.doFinal(datasource);
} catch (Throwable e)
{
e.printStackTrace();
}
return null;
}
/**
* 解密
*
* @param src
* byte[]
* @param password
* String
* @return byte[]
* @throws Exception
*/
public static byte[] decrypt(byte[] src, String password) throws Exception
{
// DES优化算法规定有一个可信任的随机数字源
SecureRandom random = new SecureRandom();
// 建立一个DESKeySpec对象
DESKeySpec desKey = new DESKeySpec(password.getBytes());
// 创建一个密匙加工厂
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(“DES”);
// 将DESKeySpec对象转化成SecretKey对象
SecretKey securekey = keyFactory.generateSecret(desKey);
// Cipher对象具体进行解密操作
Cipher cipher = Cipher.getInstance(“DES”);
// 用密匙复位Cipher对象
cipher.init(Cipher.DECRYPT_MODE, securekey, random);
// 真真正正逐渐解密操作
return cipher.doFinal(src);
}
}
————————————————————
SSL证书是HTTP密文协议书更新HTTPS加密协议书的主要方式,是网络信息安全传送的加密安全通道。有关大量SSL证书的新闻资讯,请关心数安时期(GDCA)。GDCA专注于网络信息安全,已根据WebTrust 的权威认证,是全世界可信任的资格证书审签组织。GDCA专业技术人员精英团队将按照客户详细情况为其给予最好的商品
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。