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
- java入门基础--加密JDK自带的包
- java base64加密不要使用jdk自带的
- jdk自带的Base64加密和解密工具
- JDK自带的Java VisualVM工具
- java jdk自带的WebService
- 利用Java自带的MD5加密
- 关于java中自带的加密
- 利用Java自带的MD5加密
- 利用Java自带的MD5加密
- 利用Java自带的MD5加密
- 利用java自带的MD5加密
- 用Java自带的MD5加密
- Java自带的MD5加密
- Java 自带的MD5加密。
- 利用Java自带的MD5加密
- 利用Java自带的MD5加密
- 利用Java自带的MD5加密
- 利用Java自带的MD5加密
- MAC上反编译android apk---apktool, dex2jar, jd-jui安装使用(含手动签名)
- xml
- json数据解析,json数据转为java对象
- 学习struct2第二天
- 顺序表基本操作【严蔚敏】
- java入门基础--加密JDK自带的包
- 数据库基础命令
- Linux上使用Pomodoro Technique(番茄工作法)软件
- java中Map和Collections的总结
- leetcode 304. Range Sum Query 2D
- python-opencv中的cv.CreateImage函数的参数问题
- Mem库函数模拟实现
- redis命令详解与使用场景举例——SortedSet(有序集合)
- Axure的联系-自建元件