java加密算法之AES小记】的更多相关文章

jce中提供了加解密的api: 1.首先应该明白AES是基于数据块的加密方式,也就是说,每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度 AES支持五种模式:CBC,CFB,ECB,OFB,PCBC, jce中实现了三种补码方式:NoPadding,PKCS5Padding,ISO10126Padding;不支持SSL3Padding,不支持“NONE”模式. ECB:是一种基础的加密方式,密文被分割成分组长度…
package ***; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import javax.crypto.BadPaddingException; import javax.crypto.Cipher;…
Atitit.加密算法 des  aes 各个语言不同的原理与解决方案java php c# 1. 加密算法的参数::算法/模式/填充 1 2. 标准加密api使用流程1 2.1. Md5——16bit 填充key,使其长度达到128(或其他规定的长度)2 2.2. 生成key2 2.3. 运算2 3. Aes加密原理架构图2 4. Key的算法不一致4 5. 加密模式4 5.1. Ecb4 5.2. 3.2 CBC模式:5 5.3. OFB模式:6 5.4. 3.3 CFB模式: 7 6. p…
Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] byteContent, String password) { public static byte[] decrypt(byte[] content, String password) public static  String encrypt(String  str, String passw…
Atitit.加密算法ati Aes的框架设计v2.2 版本进化1 V2.2   add def decode key api1 v1版本1 Aes的历史2 Atitit.加密算法 des  aes 各个语言不同的原理与解决...2 版本进化  V2.2   add def decode key api /atiplat_cms/src/com/attilax/secury/AesV2q421.java V2.1 * @author attilax * v2.1   add def key ap…
1.简单介绍 什么是对称加密算法? 对称加密算法即,加密和解密使用相同密钥的算法. 优缺点: 优点:算法公开.计算量小.加密速度快.加密效率高. 缺点: (1)交易双方都使用同样钥匙,安全性得不到保证. (2)每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担.对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高. 摘录来源:http://www.cnblogs.com/Free-…
密码的常用术语: 1.密码体制:由明文空间.密文空间.密钥空间.加密算法和解密算法5部分组成. 2.密码协议:也称为安全协议,是指以密码学为基础的消息交换的通信协议,目的是在网络环境中提供安全的服务. 3.柯克霍夫原则:数据的安全基于密钥而不是算法的保密.即系统的安全取决于密钥,对密钥保密,对算法公开.——现代密码学设计的基本原则. 密码的分类: 按照时间可以分为古典密码和现代密码. 按照加密算法是否公开可以分为受限制的算法和基于密钥的算法(之所以把算法公开主要是防止加密算法的发明人利用它做一些…
/** * AES加解密 */ public class AESHelper { final static String AES_KEY = "43hr8fhu34b58123"; /** * AES加密 * * @param text * 待加密字符串 * @return 加密后字符串 */ public static String AESEncrypt(String text) { try { String password = AES_KEY; SecretKeySpec ske…
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConstants; import com.mirana.frame.utils.RandomUtils; import com.mirana.frame.utils.SysPropUtils; import com.mirana.frame.utils.encrypt.enumtype.AESMode; im…
Java加密算法 RSA 2015-06-06 08:44 511人阅读 评论(0) 收藏 举报  分类: JAVA(57)  公钥加密也称为非对称加密.速度慢.加密和解密的钥匙不相同,某一个人持有私钥,任何人都可以知道公钥 package com.stone.security; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import …
1.简单介绍 这几天一直在看非对称的加密,相比之前的两篇内容,这次看了两倍多的时间还云里雾里的,所以这篇文章相对之前的两篇,概念性的东西多了些,另外是代码的每一步我都做了介绍,方便自己以后翻阅,也方便大家理解.最后就是关于代码的demo,DH算法.RSA算法本文中只有最基础的用法,实际在工作中可能会涉及到密钥的转换X509EncodedKeySpec和PKCS8EncodedKeySpec,相关的demo名分别叫DH2Test,RSA2Test,已经上传GIT.如果对您有帮助,请给我个star.…
MD5带盐值的java加密算法   import java.security.MessageDigest; public class PasswordEncoder { private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "…
简单的java加密算法有: BASE64       严格地说,属于编码格式,而非加密算法 MD5             (Message Digest algorithm 5,信息摘要算法) SHA             (Secure Hash Algorithm,安全散列算法) HMAC          (Hash Message Authentication Code,散列消息鉴别码)   Java中4大基本加密算法解析   1. BASE64 Base64是网络上最常见的用于传输…
异常信息 Caused by: Java.lang.IllegalStateException: Unable to acquire AES algorithm. This is required to function. at org.apache.shiro.crypto.AbstractSymmetricCipherService.generateNewKey(AbstractSymmetricCipherService.java:) at org.apache.shiro.crypto.…
前言: 在伟大的计算机科学家研究下,发明了许多的加密算法,以下做个简答的描述: 一.分类 加密算法分为两种:单向加密.双向加密. 单向加密,不可逆的加密算法,只能加密不能解密: 双向加密,由对称性加密算法和非对称性加密算法: 对称性加密:约定好的密钥和统一的加密算法,双发对数据进行加密.解密: // 加密解密用的是同样的“钥匙” 张无忌将一个加了锁的盒子寄给了赵敏, 赵敏收到盒子后用相同的钥匙打开,然后同样的方式寄回给张无忌: 非对称性加密:公钥和私钥组成,公钥加密私钥解密: // 加密解密用的…
转:Java 文件句柄泄露问题解决小记 维护 WebIDE 免不了要管理很多的文件, 自从我们线上系统增加了资源回收功能,便一直受一个问题困扰:后台线程解绑目录时偶尔报错,看症状因为是某些文件被占用了,目录不能解绑.但是由于系统中很多地方都有打开文件,各种包也存在复杂的的引用关系,在搜查几遍代码后并没有发现什么明显的异常. 由于这个功能清理的是既没在线又没有在离线列表中的磁盘绑定目录,那么很可能是文件句柄泄露了,还有一种原因可能是 JVM 延迟释放文件句柄,不过实际是什么原因还需要用数据说话.…
Java:ConcurrentHashMap类小记-3(JDK8) 结构说明 // 所有数据都存在table中, 只有当第一次插入时才会被加载,扩容时总是以2的倍数进行 transient volatile Node<K,V>[] table; // 在扩容时存放变量,结束后置为null private transient volatile Node<K,V>[] nextTable; // 以volatile修饰的sizeCtl用于数组初始化与扩容控制,☆后续说明☆ privat…
Java:ConcurrentHashMap类小记-2(JDK7) 对 Java 中的 ConcurrentHashMap类,做一个微不足道的小小小小记,分三篇博客: Java:ConcurrentHashMap类小记-1(概述) Java:ConcurrentHashMap类小记-2(JDK7) Java:ConcurrentHashMap类小记-3(JDK8) 结构说明 构造函数 无参构造 // 空参构造 public ConcurrentHashMap() { // 调用本类的带参构造,都…
Java:ConcurrentHashMap类小记-1(概述) 对 Java 中的 ConcurrentHashMap类,做一个微不足道的小小小小记,分三篇博客: Java:ConcurrentHashMap类小记-1(概述) Java:ConcurrentHashMap类小记-2(JDK7) Java:ConcurrentHashMap类小记-3(JDK8) 概述 ConcurrentHashMap 是 Java 并发包中提供的一个线程安全且高效的 HashMap 实现,其在并发编程的场景中使…
Java:HashMap类小记 对 Java 中的 HashMap类,做一个微不足道的小小小小记 概述 HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致.由于要保证键的唯一.不重复,需要重写键的hashCode()方法.equals()方法. Map 接口中定义了很多方法,常用的如下: public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中. public V remove(Object key) : 把指定的键所对应的键值对元素…
Java:HashTable类小记 对 Java 中的 HashTable类,做一个微不足道的小小小小记 概述 public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable { // ... } 需要说明的是:HashTable 和 HashMap 的实现原理基本一样,差别无非是: HashTable 不允许 key 和 v…
Java:Set接口小记 对 Java 中的 Set接口 与 其实现类,做一个微不足道的小小小小记 概述 public interface Set<E> extends Collection<E> { // ... } Set 接口继承了 Collection 接口,Set集合中不能包含重复的元素,每个元素必须是唯一的,你只要将元素加入 Set 中,重复的元素会自动移除. 对于 Set 的个人理解: 使用上:就是不能带有重复元素的 List: 本质上:只用了 key 的 Map,一…
Java:TreeMap类小记 对 Java 中的 TreeMap类,做一个微不足道的小小小小记 概述 前言:之前已经小小分析了一波 HashMap类.HashTable类.ConcurrentHashMap类.LinkedHashMap类,现在再小小分析一下TreeMap类 public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.i…
Java:LinkedHashMap类小记 对 Java 中的 LinkedHashMap类,做一个微不足道的小小小小记 概述 public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>{ // ... } LinkedHashMap 继承于 HashMap,而由于 HashMap 是无序的,而当我们需要有序的存储 key-value 键值对时,就可以采用 LinkedHashMap.…
Java:LinkedList类小记 对 Java 中的 LinkedList类,做一个微不足道的小小小小记 概述 java.util.LinkedList 集合数据存储的结构是循环双向链表结构.方便元素添加.删除的集合. 循环双向链表: 链表中任意一个存储单元都可以通过向前或者向后寻址的方式获取到其前一个存储单元和其后一个存储单元 链表的尾节点的后一个节点是链表的头结点,链表的头结点的前一个节点是链表的尾节点 可以画出如下示意图: 就是这样的结构,是的链表可以作为队列/双端队列使用,在刷题的时…
Java:ArrayList类小记 对 Java 中的 ArrayList类,做一个微不足道的小小小小记 概述 java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储的元素. ArrayList 中可不断添加元素,其大小也自动增长. ArrayList 是一种变长的集合类,基于定长数组实现. ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组…
Java:修饰符小记 对 Java 中的 修饰符,做一个微不足道的小小小小记 Java 语言提供了很多修饰符,大概分为两类: 访问权限修饰符 非访问权限修饰符 访问权限修饰符 修饰符 说明 public 共有访问.对所有的类都可见 protected 保护型访问.对同一个包可见,对不同的包的子类可见 default 默认访问权限.只对同一个包可见,注意:对不同的包的子类不可见 private 私有访问.只对同一个类可见,其余都不见 非访问权限修饰符 修饰符 说明 static 用来创建类方法和类…
Java:动态代理小记 对 Java 中的 动态代理,做一个微不足道的小小小小记 概述 动态代理:当想要给实现了某个接口的类中的方法,加一些额外的处理.比如说加日志,加事务等.可以给这个类创建一个代理,故名思议就是创建一个新的类,这个类不仅包含原来类方法的功能,而且还在原来的基础上添加了额外处理的新功能.这个代理类并不是定义好的,是动态生成的.具有解耦意义,灵活,扩展性强. 动态代理的应用:Spring 的 AOP .加事务.加权限.加日志. 实现 JDK原生动态代理:动态代理类和被代理类必须继…
Java:Object对象小记 对 Java 中的 Object 对象,做一个微不足道的小小小小记 Object 的常用方法有哪些 clone() 方法:用于创建并返回当前对象的一份拷贝: 在Java:创建对象小记这里做了个小结 getClass() 方法:用于返回当前运行时对象的 Class: toString() 方法:返回对象的字符串表示形式: finalize() 方法:实例被垃圾回收器回收时触发的方法: equals() 方法:用于比较两个对象的内存地址是否相等,一般需要重写: has…
Java:static关键字小记 对 Java 中的 static 关键字,做一个微不足道的小小小小记 static 修饰变量 静态变量:是被 static 修饰的变量,也称为类变量,它属于类,因此不管创建多少个对象,静态变量在内存中有且仅有一个拷贝:静态变量可以实现让多个对象共享内存:可以直接通过 类名.静态变量名 来访问它. 静态的注意事项: 静态方法只能访问静态成员(包括静态成员变量和静态成员方法),不能访问非静态成员或方法:非静态方法可以访问静态也可以访问非静态方法或成员. 静态方法中不…