-
第一步……产生key.再获得key查看全部
-
生成一个key……用了类KeyGenerator查看全部
-
发送消息时的常用dang'shi查看全部
-
嗯查看全部
-
图查看全部
-
jdkmd5查看全部
-
消息摘要算法的应用场景: 1.发送方与接收方 消息发送方需要公布使用哪种消息摘要算法,然后对待发送的信息进行摘要处理(密文). 发送方首先发送摘要信息(密文)给接收方,再发送信息(明文)给接收方. 接收方在接收到所有信息后会进行一个消息鉴别,将接收到的源信息通过发送方声明的摘要算法进行消息摘要处理,判断得到的摘要信息是否与接收到的摘要信息一致,进而判断接收到的信息是否是完整的. 2.用户注册 将用户提供的密码进行消息摘要处理,即MD或SHA或MAC算法加密,并把加密后的密码存入数据库. 数据库表中用户名以明文的形式存在,密码以密文的形式存在. 用户登录,需将用户提供的密码经过同一个消息摘要算法处理,然后根据用户名与处理后的密码到数据库中查询是否存在此用户. 消息摘要算法作用是保证数据的完整、安全.查看全部
-
CommonCodec实现SHA1算法: (仍然使用DigestUtils工具类,有getXXX方法获取MessageDigest实例或XXXHex方法直接将指定内容通过摘要处理并转为16进制) //方式一 DigestUtils.sha1Hex(str.getBytes())); //方式二 MessageDigest digest=DigestUtils.getDigest("SHA"); byte[] data=digest.digest(str.getBytes()); Hex.encodeHexString(data); //方式三 MessageDigest digest=DigestUtils.getSha1Digest(); byte[] data=digest.digest(str.getBytes()); Hex.encodeHexString(data); CommonCodec实现SHA-224、SHA-256、SHA-384、SHA-512算法,只需使用算法对应的方法即可.参照JDK的实现方式.查看全部
-
BouncyCastle实现SHA1算法: (仍然是使用Digest接口,换上对应算法的实现类) Digest digest=new SHA1Digest(); digest.update(str.getBytes(),0,str.getBytes().length); byte [] data=new byte[digest.getDigestSize()]; digest.doFinal(data,0); System.out.println("BouncyCastle SHA-1 "+Hex.toHexString(data)); BouncyCastle实现SHA-224、SHA-256、SHA-384、SHA-512算法,只需要给Digest接口注入对应算法的实现类即可. 例:SHA224Digest()、SHA256Digest()....查看全部
-
SHA算法实现 JDK实现SHA1算法: (仍然是使用MessageDigest类,与MD实现方法一致) //在jdk中,getInstance("SHA")即为SHA-1,SHA-1的名称就是SHA. MessageDigest digest=MessageDigest.getInstance("SHA"); byte [] data=digest.digest(str.getBytes()); Hex.encodeHexString(data); JDK实现SHA-224、SHA-256、SHA-384、SHA-512算法只要在getInstance()方法中换上对应的算法名即可. 即:getInstance(SHA-224)、getInstance(SHA-256)查看全部
-
在使用JDK的MessageDigest类的时候,可以使用MessageDigest的update(byte [] b)方法指定要摘要的数据,那么就可以使用不带参数的digest()方法. MessageDigest md=new MessageDigest("MD5"); md.update("imooc".getBytes()); String date=md.digest(); MessageDigest md=new MessageDigest("MD5"); String date=md.digest("imooc".getBytes());查看全部
-
消息摘要算法-SHA(安全散列算法) SHA具有固定长度的摘要信息,在MD4的基础上发展过来的,由美国国家安全局设定. SHA算法包括: 1.SHA-1 2.SHA-2 (SHA-224、SHA-256、SHA-384、SHA-512这4种统称为SHA-2) SHA-2只是一个统称,实际上SHA总共有5种算法. 表格中分别显示了这5种算法的固定摘要长度,其中没有显示CommonCodec,是因为CommonCodec SHA的算法实现是为了简化JDK SHA算法实现的操作. JDK与BouncyCastle都提供了这5种算法的实现.查看全部
-
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文. 消息摘要算法的应用场景: 用户注册,将用户提供的密码进行消息摘要处理,即MD或SHA或MAC算法加密,并把加密后的密码存入数据库. 数据库表中用户名以明文的形式存在,密码以密文的形式存在. 用户登录,需将用户提供的密码经过同一个消息摘要算法处理,然后根据用户名与处理后的密码到数据库中查询是否存在此用户.查看全部
-
CommonCodec实现MD算法 CommonCodec提供了DigestUtils类,该类有getDigest(String algorithm)、getMd2Digest()、getMd5Digest()、getSha..方法等,返回一个MessageDigest实例. 这个MessageDigest就是JDK提供的MessageDigest类. 因此CommonCodec的MD算法实现实际是为了简化JDK MD算法实现的操作. 1.直接使用DigestUtils的md5Hex(byte [] b)静态方法,直接把字节数组通过MD5加密并且转换为16进制,返回字符串类型.还有md2Hex()以及其他算法的方法实现,没有md4Hex(). CommonCodec实现MD2算法 System.out.println(DigestUtils.md2Hex("imooc".getBytes())); CommonCodec实现MD5算法 System.out.println(DigestUtils.md5Hex("imooc".getBytes())); 在MD系列中,CC与BC区别比较大,CC MD系列的方法只是为了简便JDK实现MD算法的操作,减少代码量,而BC则是自己独立的操作,并且提供MD4算法. 实际上,CommonCodec所有算法实现都是为了简化jdk的操作.BouncyCastle是为了做额外的补充.查看全部
-
BouncyCastle实现MD算法 1.使用BouncyCastle中的Digest接口,该接口有很多实现类,包括MD2Digest()、MD4Digest()、MD5Digest()、SHA等实例.根据使用加密算法的不同,自行选择对应的实现类. 2.调用Digest接口的update(byte[] b,inOff,len)方法进行加密,有三个参数,第一个参数是要加密的明文字节数组,第二个参数是从字节数组的哪里开始加密,第三个参数是要加密的长度.方法返回void. 3.调用Digest接口的doFinal(byte[] b,outOff)方法来获取经过加密后的密文.参数一是用来存放加密后信息的字节数组,参数二是从字节数组的哪里开始存放.方法返回void. BouncyCastle实现MD4加密 Digest digest=new MD4Digest(); digest.update("imooc".getBytes(),0,"imooc".getBytes().length); byte [] b=new byte[digest.getDigestSize()]; digest.doFinal(b,0); System.out.println(Hex.toHexString(b)); //getDisgestSize()方法可以获取经过加密后摘要的长度. //MD4的使用与MD2、MD5的方式类似,换成对应算法的实现类即可.查看全部
举报
0/150
提交
取消