Java怎么加密对象,Java怎么加密

  Java怎么加密对象,Java怎么加密

  写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用

  1、MD5(Message Digest Algorithm)加密算法

  是一种单向加密算法,只能加密不能解密,示例

  /**

  * MD5简单加密

  * @param内容加密内容

  * @返回字符串

  */

  公共静态字符串MD5加密(最终字符串内容){

  MessageDigest md5=null

  尝试{

  MD5=消息摘要。getinstance(ALGORITHM _ MD5);

  } catch(nosuch算法异常e){

  e。printstacktrace();

  }

  //MD5。更新(正文。getbytes());

  //摘要()最后返回讯息摘要5哈希值,返回值为8位字符串。因为讯息摘要5哈希值是16位的十六进制值,实际上就是8位的字符

  //BigInteger函数则将8位的字符串转换成16位十六进制值,用字符串来表示;得到字符串形式的混杂值

  大整数摘要=新的大整数(MD5。摘要(内容。getbytes()));

  //32位

  返回消化。tostring(16);

  }2、BASE64进行加密/解密

  通常用作对二进制数据进行加密,示例

  /**

  * base64加密

  * @param内容待加密内容

  * @返回字节[]

  */

  公共静态字节[]base64加密(最终字符串内容){

  返回Base64.getEncoder().编码(内容。getbytes());

  }

  /**

  * base64解密

  * @ param encoderContent已加密内容

  * @返回字节[]

  */

  公共静态字节[] base64Decrypt(最终字节[]编码内容){

  返回Base64.getDecoder().解码(编码器内容);

  }3、DES(Data Encryption Standard)对称加密/解密

  数据加密标准算法,和BASE64最明显的区别就是有一个工作密钥,该密钥既用于加密、也用于解密,并且要求密钥是一个长度至少大于8位的字符串,示例

  /**

  * DES加密

  * @param key秘钥键

  * @param内容待加密内容

  * @返回字节[]

  */

  公共静态字节[]解密(最终字符串密钥,最终字符串内容){

  返回processCipher(content.getBytes(),getSecretKey(key),Cipher .ENCRYPT_MODE,ALGORITHM _ DES);

  }

  /**

  * DES解密

  * @param key秘钥键

  * @ param encoderContent已加密内容

  * @返回字节[]

  */

  公共静态字节[]解密(最终字符串密钥,最终字节[]编码内容){

  返回processCipher(encoderContent,getSecretKey(key),Cipher .DECRYPT_MODE,ALGORITHM _ DES);

  }4、RSA非对称加密/解密

  非对称加密算法的典型代表,既能加密、又能解密。和对称加密算法比如数据加密标准的明显区别在于用于加密、解密的密钥是不同的。使用南非共和国(南非共和国)算法,只要密钥足够长(一般要求1024位),加密的信息是不能被破解的。示例

  /**

  * RSA加密

  * @param内容待加密内容

  * @返回字节[]

  */

  公共静态字节[] RSAEncrypt(最终字符串内容){

  返回processCipher(content.getBytes(),keyPair.getPrivate(),Cipher .ENCRYPT_MODE,ALGORITHM _ RSA);

  }

  /**

  * RSA解密

  * @ param encoderContent已加密内容

  * @返回字节[]

  */

  公共静态字节[]RSA解密(最终字节[]编码内容){

  返回processCipher(encoderContent,keyPair.getPublic(),Cipher .DECRYPT_MODE,ALGORITHM _ RSA);

  }5、SHA(Secure Hash Algorithm,安全散列算法)

  数字签名等密码学应用中重要的工具,被广泛地应用于电子商务等信息安全领域,示例

  /**

  * SHA加密

  * @param内容待加密内容

  * @返回字符串

  */

  公共静态字符串SHAEncrypt(最终字符串内容){

  尝试{

  消息摘要。getinstance(ALGORITHM _ SHA);

  字节[]sha _ byte=sha。摘要(内容。getbytes());

  字符串缓冲区十六进制值=新字符串缓冲区();

  对于(字节b : sha_byte) {

  //将其中的每个字节转成十六进制字符串:字节类型的数据最高位是符号位,通过和0xff进行与操作,转换为(同国际组织)国际组织类型的正整数。

  字符串到十六进制字符串=整数。转换为十六进制字符串(b0x ff);

  十六进制值。append(tohexstring。length()==1?0 toHexString:toHexString);

  }

  返回十六进制值。tostring();

  //字符串缓冲区十六进制值2=新字符串缓冲区();

  //for(int I=0;i sha _ byte.lengthi ) {

  //int val=((int)sha _ byte[I])0x ff;

  //if (val 16) {

  //十六进制值2。追加(“0”);

  //}

  //十六进制值2。追加(整数。tohexstring(val));

  //}

  //返回十六进制值2。tostring();

  } catch(异常e) {

  e。printstacktrace();

  }

  返回"";

  }6、HMAC(Hash Message Authentication Code,散列消息鉴别码)

  使用一个密钥生成一个固定大小的小数据块,即麦克,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证,示例

  /**

  * HMAC加密

  * @param key给定秘钥键

  * @param内容待加密内容

  * @返回字符串

  */

  公共静态字节[]hmacecrypt(最终字符串密钥,最终字符串内容){

  尝试{

  秘密密钥秘密密钥=新秘密密钥规范(密钥。getbytes()、ALGORITHM _ MAC);

  MAC MAC=MAC。getinstance(密钥。getalgorithm());

  //初始化老兄

  麦克。init(密钥);

  返回麦克。做最后(内容。getbytes());

  } catch(异常e) {

  e。printstacktrace();

  }

  返回空

  }测试代码:

  公共静态void main(String[] args) {

  //md5简单加密

  字符串文本=我是文本;

  系统。出去。println(endecoderutil。MD 5加密(文本));

  //base64进行加密解密,通常用作对二进制数据进行加密

  byte[]base 64 encrypt=endecoderutil。base 64加密( 123456789 );

  字符串到十六进制字符串=十六进制实用程序。转换为十六进制字符串(base 64 encrypt);

  系统。出去。println(toHexString);

  byte[]base64 decrypt=endecoderutil。base64解密(base64加密);

  System.out.println(新字符串(base64解密));

  //DES对称加密/解密

  //要求键至少长度为8个字符

  String key= 123456789

  //加密

  byte[]encode _ bytes=EnDecoderUtil .DESEncrypt(key, Hello,DES );

  系统。出去。println(base64。获取编码器().encodeToString(encode _ bytes));

  //解密

  byte[]decode _ bytes=EnDecoderUtil .DESDecrypt(key,encode _ bytes);

  System.out.println(新字符串(decode _ bytes));

  //RSA

  //数据使用私钥加密

  byte[] en_byte=EnDecoderUtil .RSAEncrypt(Hi,RSA );

  系统。出去。println(base64。获取编码器().encodeToString(en _ byte));

  //用户使用公钥解密

  byte[] de_byte=EnDecoderUtil .RSA解密(en _ byte);

  System.out.println(新字符串(de _ byte));

  //服务器根据私钥和加密数据生成数字签名

  byte[]sign _ byte=endecoderutil。获取签名(en _ byte);

  系统。出去。println(base64。获取编码器().encodeToString(sign _ byte));

  //用户根据公钥、加密数据验证数据是否被修改过

  布尔型verify _ result=endecoderutil。验证签名(en _ byte,sign _ byte);

  系统。出去。println(verify _ result);

  //SHA

  String sha=EnDecoderUtil .SHAEncrypt(Hi,RSA );

  系统。出去。println(sha);

  //HMAC

  byte[] mac_bytes=EnDecoderUtil .HMACEncrypt(键,嗨,HMAC’);

  系统。出去。println(十六进制实用程序。tohexstring(MAC _ bytes));

  }更多爪哇岛知识请关注爪哇岛基础教程栏目。以上就是爪哇岛怎么加密的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: