什么是MD5信息摘要算法?MD5算法的特点?

 MD5算法概述 MD5信息摘要算法(MD5, Message-Digest Algorithm)是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用...
阅读全文

什么是SM3密码杂凑算法?SM3算法的特点?

SM3算法概述 SM3密码杂凑算法是中国国家密码管理局于2010年公布的中国商用密码杂凑算法标准。该算法由王小云等人设计,消息分组512比特,输出杂凑值256比特(32字节),采用Merkle-Dam...
阅读全文

什么是不带密钥的杂凑函数?什么是带密钥的杂凑函数?

杂凑函数可以按其是否有密钥参与运算分为两大类:不带密钥的杂凑函数和带密钥的杂凑函数。 1.不带密钥的杂凑函数 不带密钥的杂凑函数在运算过程中没有密钥参与。不带密钥的杂凑函数的杂凑值只是消息输入的函数,...
阅读全文

什么是杂凑函数(Hash函数、哈希函数、消息摘要函数、散列函数)?

杂凑函数(又叫Hash函数、哈希函数、消息摘要函数、散列函数)就是把任意长的输入消息串变化成固定长的输出串的一种函数。杂凑函数是信息安全中一个非常重要的工具,对一个任意长度的消息m施加运算,返回一个固...
阅读全文

SecureRandom类的构造方法有哪些?

类SecureRandom的构造方法主要是用来定义随机数生成器,常用的构造方法有以下两种。 (1)SecureRandom() 构造一个实现默认随机数算法的安全随机数生成器(RNG)。不带参数比较常用...
阅读全文
Java中的随机数类:Random和SecureRandom JAVA

Java中的随机数类:Random和SecureRandom

Java提供了两个类来为用户提供随机数功能,分别是类Random和类SecureRandom。SecureRandom是从Random派生而来的,且专门用于要求高的密码学场合。类Random一般用于随...
阅读全文

什么是真随机数生成器(TRNG)?什么是伪随机数生成器(PRNG)?

说到随机,有两个必须搞清楚的概念:真随机数生成器(TRNG)和伪随机数生成器(PRNG)。 伪随机数是用确定性的算法计算出来的均匀分布的随机数序列,并不真正随机,但是具有类似于随机数的统计特征,如均匀...
阅读全文
什么是SM4分组密码算法?SM4算法有哪些特点? JAVA

什么是SM4分组密码算法?SM4算法有哪些特点?

1.概述 随着密码标准的制定活动在国际上热烈开展,我国对密码算法的设计与分析也越来越关注,因此国家密码管理局公布了国密算法SM4。SM4算法(全称为SM4分组密码算法),是国家密码管理局2012年3月...
阅读全文

什么是DES算法?DES算法的基本原理是什么?

1.概述 DES(Data Encryption Standard,数据加密标准)是由IBM公司研制的一种对称算法,也就是说它使用同一个密钥来加密和解密数据,并且加密和解密使用的是同一种算法。美国国家...
阅读全文

什么是短块加密算法?对于短块的处理方法有哪些?

分组加密算法又称块加密算法,就是一组一组进行加解密。它将明文分成多个等长的块(block,或称分组),使用确定的算法和对称密钥对每组分别进行加解密。通俗地讲,就是一组一组地进行加解密,而且每组数据长度...
阅读全文
什么是分组加密算法的OFB模式(输出反馈模式)? JAVA

什么是分组加密算法的OFB模式(输出反馈模式)?

分组加密算法又称块加密算法,就是一组一组进行加解密。它将明文分成多个等长的块(block,或称分组),使用确定的算法和对称密钥对每组分别进行加解密。通俗地讲,就是一组一组地进行加解密,而且每组数据长度...
阅读全文
什么是分组加密算法的CFB模式(密文反馈模式)? JAVA

什么是分组加密算法的CFB模式(密文反馈模式)?

分组加密算法又称块加密算法,就是一组一组进行加解密。它将明文分成多个等长的块(block,或称分组),使用确定的算法和对称密钥对每组分别进行加解密。通俗地讲,就是一组一组地进行加解密,而且每组数据长度...
阅读全文
什么是分组加密算法的CBC模式(密码分组链接模式)? JAVA

什么是分组加密算法的CBC模式(密码分组链接模式)?

分组加密算法又称块加密算法,就是一组一组进行加解密。它将明文分成多个等长的块(block,或称分组),使用确定的算法和对称密钥对每组分别进行加解密。通俗地讲,就是一组一组地进行加解密,而且每组数据长度...
阅读全文
什么是分组加密算法的ECB模式(电子密码本模式)? JAVA

什么是分组加密算法的ECB模式(电子密码本模式)?

分组加密算法又称块加密算法,就是一组一组进行加解密。它将明文分成多个等长的块(block,或称分组),使用确定的算法和对称密钥对每组分别进行加解密。通俗地讲,就是一组一组地进行加解密,而且每组数据长度...
阅读全文
什么是流加密算法(序列加密算法)? JAVA

什么是流加密算法(序列加密算法)?

流加密又称序列加密,是对称加密算法的一种。加密和解密双方使用相同伪随机数据流(pseudo-randomstream)作为密钥(这个密钥也称为伪随机密钥流,简称密钥流),明文数据每次与密钥数据流顺次对...
阅读全文
什么是对称算法(对称加解密算法)? JAVA

什么是对称算法(对称加解密算法)?

加密和解密使用相同密钥的密码算法叫对称加解密算法,简称对称算法。对称算法速度快,通常在需要加密大量数据时使用。所谓对称,就是采用这种密码方法的双方使用同样的密钥进行加密和解密。 对称加解密算法的优点是...
阅读全文

JCA(Java密码学架构)编程的两大安全包

由于历史原因,Java安全相关的API放在了两个不同的包里面,即java.security和javax.crypto包。 java.security包包含不受出口控制限制的一些安全功能,比如签名(Si...
阅读全文

JCA(Java密码学架构)中的密码服务提供者

JCA引入了CSP的概念。CSP是JCA的密码服务提供者,包含一个或多个签名算法、消息摘要算法、密钥产生算法、密钥工厂、密钥库创建与密钥管理、算法参数管理、算法参数产生、证书工厂等。 在JDK的典型安...
阅读全文

什么是JCA(Java密码学架构)?JCA的设计原则?

每种强大的语言都有相应的密码安全方面的库,Java也有这样的库,即大名鼎鼎的JCA(Java Cryptography Architecture,Java密码学架构)。Java平台非常强调安全,包括语...
阅读全文