java入门基础--加密JDK自带的包

来源:互联网 发布:京东秒杀抢购软件 编辑:程序博客网 时间:2024/06/05 23:43

前言动机:java作为一门开源的语言,尽管出现了非官方的如Spring,Hibernate这样的强大框架, 但是我觉得官方出品的一些东西还是有必要学习,因为只有掌握了这些最底层的

不被人注意的东西,我们才能在更高级的非官方东西中更好的学习他们,这就好比---内练一口气(jdk基础),-----才能 “外联 筋骨皮”

 1. 加密这件事,首先肯定是为了安全,一些银行和保险公司的项目大多都是将加密后的数据储存到数据库,向来没有明文储存一说,不管采用何种方式,其底层原理我猜和jdk加密方式差不多,

    我们来看看jdk'的方式; 

String 被加密的Str=“我爱”;

BASE64Encoder encoder=new BASE64Encoder(); //  BASE64Encoder sun(oracle)公司的// 加密String encodeSTR=encoder.encode(被加密的Str.getBytes());System.out.println(">>jdk加密>>"+encodeSTR);// 解密  BASE64Decoder decoder=new BASE64Decoder();System.out.println(">jdk 解码>>>"+new String(decoder.decodeBuffer(encodeSTR))) ;

************看起来很容易,所以这种很容易被破解******

来看第二种 apache公司的加密

 Base64 base64=new Base64();byte[] byteEncode= base64.encode(被加密的Str.getBytes()); System.out.println("Comonc-c加密>>"+new String(base64.encode(被加密的Str .getBytes()))); byte[] byteDecode  = base64.decode(byteEncode); System.out.println("Comonc-c>解密>"+new String(byteDecode));
**********暂时还没被破解的bouncycastle对称加密****************

//生成keyKeyGenerator keyGenerator=KeyGenerator.getInstance("DES");keyGenerator.init(56);SecretKey secretKey=keyGenerator.generateKey();byte[] bytes=secretKey.getEncoded();//key转换DESKeySpec desKeySpec=new DESKeySpec(bytes);SecretKeyFactory factory=SecretKeyFactory.getInstance("DES");Key converSeKey=factory.generateSecret(desKeySpec);//加密Cipher cipher=Cipher.getInstance("DES");cipher.init(Cipher.ENCRYPT_MODE,converSeKey);byte[] result=cipher.doFinal(EgStr.getBytes());System.out.println(">>对称加密>"+ Hex.toHexString(result));//解密cipher.init(Cipher.DECRYPT_MODE,converSeKey);result=cipher.doFinal(result);System.out.println(">>对称解密>>"+new String(result)); 
******以下是maven地址***************

<dependency>    <groupId>commons-codec</groupId>    <artifactId>commons-codec</artifactId>    <version>1.10</version></dependency><!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on --><dependency>    <groupId>org.bouncycastle</groupId>    <artifactId>bcprov-jdk15on</artifactId>    <version>1.54</version></dependency>

0 0
原创粉丝点击