少艾
2016-06-26 23:05
md4加密的算法中:update方法是什么意思?
doFinal方法是什么意思?
创建一个实例对象之后,调用实例对象的update()方法,将原文信息更新到摘要信息中,获取摘要信息的长度,然后调用实例对象的doFinal()方法,执行加密信息的长度以及起始位置。最终的加密信息是通过调用doFinal()方法执行后为结果的。
回复 少艾:你说的是 SecretKey restoreSecretKey=new SecretKeySpec(key,”HmacMD5”)这一行代码吗,我也很疑惑。觉得应该是口误说错了吧。在JDK文档SecretKeySpec类中有两个带参数的构造方法,其中一个就是带有两个参数的,是这样写的
“SecretKeySpec(byte[] key, String algorithm)---- 根据给定的字节数组构造一个密钥。
其中两个参数:key - 密钥的密钥内容。复制该数组的内容来防止后续修改。
algorithm - 跟给定的密钥内容相关联的密钥算法的名称”
这样一来restoreSecretKey应该是做了两件事,一个就是复制key的内容,二是得到了生成key的”HmacMD5”(秘钥算法),然后根据这两个参数实例化了一个Mac对象并将其初始化(init),最后处理原文的字节数组(src.getBytes())并完成 Mac加密操作。这样一来,我觉的是不是任何加密算法都可以通过给Mac.getInstance()传递一个算法参数就可将其算法实例化为Mac加密对象呢。(我也是刚学,原理不明白)
Java实现消息摘要算法加密
25524 学习 · 40 问题
相似问题