版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据的机密性可以通过其他加密算法加密和实现。JAVA加密和解密有多种技术。本身提供了支持多种算法的优秀类库,常用的加密算法包括:默认单向加密算法:BASE64严格地说属于编码格式,而不是加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)散列消息身份验证代码(Hmac)复杂对称加密(DES、PBE)、不对称加密算法:数据加密标准(DES),数据加密算法基于密码的加密(PBE),基于密码的身份验证RSA(算法的名称是发明家的名字:Ron Rivest,AdiShamir,Leonard Adlema
2、n)DH(Diffie-Hellman算法,密钥合规协议)DSA(数字签名Algorithm,数字签名)ECC(电子曲线加密,椭圆曲线密码编码)本文简要介绍了BASE64、MD5、SHA和HMAC的几种方法。MD5、SHA和HMAC三种加密算法是不可逆加密,即不可解密的加密方法。我们通常只用他们作为加密的基础。简单的三种加密是不可靠的。BASE64Base64(定义为RFC2045)旨在以不容易识别的形式描述Base64内容传递编码中任意序列的8位字节。(the base64 content-transfer-encoding is designed to represent arbitrar
3、y sequences of octets in a form that need not be humanly reable))常用用户名和密码字段(如邮件、http加密和http信息截取)通过BASE64加密。通过Java代码实现如下:1 /*2 * BASE64解密3 *4 * param key5 * return6 * throwindexception7 */8 public static bytedecrypt base64(string key)throws exception 9 return (new base64 decoder()。decode buffer(key);
4、101112 /*13 * BASE64加密14 *15 * param key16 * return17 * throws Exception18 */19 public static string encrypt base64(bytekey)throws exception 20 return (new base64 encoder()。encode buffer(key);21主要有两个类:BASE64Encoder、BASE64Decoder,我们只需要知道如何使用这些方法。此外,BASE加密后生成的字节数是8的倍数。如果没有足够的位数填充=符号。MD5MD5 - message-d
5、igest algorithm 5(信息摘要算法)缩写,广泛用于加密和解密技术,经常用于文件验证。验证可以在MD5之后生成唯一的MD5值,无论文件大小如何。MD5验证,如当前ISO验证。使用MD5后,ISO创建MD5的方法当然是使用此值。一般来说,所有下载linux-ISO的朋友都看到下载链接旁边有MD5的字符串。用于验证文档是否一致。通过Java代码实现如下:22 /*23 * MD5加密24 *25 * param data26 * return27 * throws Exception28 */29 public static byteencrypt MD 5(bytedata)thro
6、ws exception 3031 message digest MD5=message digest . getinstance(key _ MD5);32md5。更新(data);3334 return MD5 . digest();3536通常不直接使用上述MD5加密。通常,将MD5生成的字节数组传递给BASE64以加密该字符串。夏它是加密应用程序(如Secure Hash Algorithm、安全散列算法、数字签名)中的重要工具,广泛应用于电子商务等信息安全领域。SHA和MD5通过冲突方法解决了,但SHA仍被称为比MD5更安全的安全加密算法。通过Java代码实现如下:Java代码37
7、/*38 * SHA加密39 *40 * param data41 * return42 * throws Exception43 */44 public static byteencrypt sha(bytedata)throws exception 4546 message digest sha=message digest . getinstance(key _ sha);47 sha。更新(数据);4849 return sha . digest();505152HMACHash(散列消息验证代码,基于密钥的散列算法的验证协议)。消息验证代码通过使用公共函数和密钥来验证消息完整性的验证
8、标识符生成固定长度的值来实现验证。使用一个键生成固定大小的小数据块(MAC),然后将其添加到邮件中并发送。接收方使用与发送方共享的密钥进行身份验证等。通过Java代码实现如下:Java代码53 /*初始化54 * HMAC密钥55 *56 * return57 * throwindexception58 */59 public static string init Mackey()throws exception 60 key generator key generator=key generator . getinstance(key _ MAC);6162 secret key sec g
9、enerator . generate key();63 return encrypt base64(secret key . getencoded();646566 /*67 * HMAC加密68 *69 * param data70 * param key71 * return72 * throws Exception73 */74 public static byteencrypt hmac(bytedata,string key) throws exception7576 secret key secret key=new secret key spec(decrypt base64(
10、key),key _ MAC);77 MAC=MAC . get instance(secret key . getalgorithm();78 MAC . init(secret key);7980 return MAC . dofinal(data);8182提供了整个类,如下所示:Java代码83 import Java . security . message digest;8485 import javax . crypto . key generator;86 import javax . crypto . MAC;87 import javax . crypto . secret
11、 key;8889 import sun . misc . base 64 decoder;90 import sun . misc . base 64 encoder;9192 /*93 *基本加密组件94 *95 * author梁96 * version 1.097 * since 1.098 */99 public abstract class coder100 public static final string key _ sha= sha ;101 public static final string key _ MD5= MD5 ;102103 /*104 * MAC算法选择多
12、个算法,例如105 *106 *107 * HmacMD5108 * HmacSHA1109 * HmacSHA256110 * HmacSHA384111 * HmacSHA512112 *113 */114 public static final string key _ MAC= hmac MD 5 ;115116 /*117 * BASE64解密118 *119 * param key120 * return121 * throwindexception122 */123 public static bytedecrypt base64(string key)throws except
13、ion 124 return (new base64 decoder()。decode buffer(key);125126127 /*128 * BASE64加密129 *130 * param key131 * return132 * throws Exception133 */134 public static string encrypt base64(bytekey)throws exception 135 return (new base64 encoder()。encode buffer(key);136137138 /*139 * MD5加密140 *141 * param d
14、ata142 * return143 * throws Exception144 */145 public static byteencrypt MD 5(bytedata)throws exception 146147 message digest MD5=message digest . getinstance(key _ MD5);148md5。更新(data);149150 return MD5 . digest();151152153154 /*155 * SHA加密156 *157 * param data158 * return159 * throws Exception160 *
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届云南省中央民族大附属中学芒市国际学校高三物理第一学期期中预测试题含解析
- 2027届浙江省宁海县十校联考物理高一上期中经典模拟试题含解析
- 2026年ccf考试题库以及答案详解
- 2026年链工宝题库及答案详解
- 2026年中国页岩气行业市场监测与投资战略研究报告
- 2026年煤矿班组长职业技能考试题库及答案详解
- 2026年物流金融题库及答案详解
- 2026年ciic考试题库及答案详解
- 2026年中国远红外消痛贴市场研究及发展趋势预测
- 2026年驾考宝典机动车驾驶人科目一考试题库及答案详解
- 光大证券2027届校园招聘笔试备考题库及答案详解
- 安全用电 课件 绪论
- 2026年中职市场营销(市场营销基础知识)试题及答案
- 2026山东鲁东南水资源配置有限公司社会招聘笔试参考题库及答案详解
- 新生儿窒息复苏指南学习课件
- 新版(2026秋新版)北师大版五年级数学上册全册教案合集
- 2026年秋季教育学专业开学第一课 职业发展前景分析教学设计
- 医院关于不合理医疗检查专项治理自查自查自纠总结
- (正式版)DB31∕T 684-2023 《养老机构照护服务分级要求》
- 2026年贵州省纪委监委公开遴选公务员笔试试题及答案解析
- 2026年《中华人民共和国妇女权益保障法》知识竞赛题库(含答案)
评论
0/150
提交评论