- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Java实现SHA算法的方法详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了java实现sha算法的方法。分享给大家供大家参考,具体如下:
一 简介 。
安全散列算法 。
固定长度摘要信息 。
二 sha算法 。
sha-1、sha-2(sha-224、sha-256、sha384、sha-512) 。
三 sha算法实现 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package
com.imooc.security.sha;
import
java.security.messagedigest;
import
java.security.nosuchalgorithmexception;
import
java.security.security;
import
org.apache.commons.codec.binary.hex;
import
org.apache.commons.codec.digest.digestutils;
import
org.bouncycastle.crypto.digest;
import
org.bouncycastle.crypto.digests.sha1digest;
import
org.bouncycastle.crypto.digests.sha224digest;
import
org.bouncycastle.jce.provider.bouncycastleprovider;
public
class
imoocsha {
private
static
string src =
"cakin24 security sha"
;
public
static
void
main(string[] args) {
jdksha1();
bcsha1();
bcsha224();
ccsha1();
}
public
static
void
jdksha1() {
try
{
messagedigest md = messagedigest.getinstance(
"sha"
);
md.update(src.getbytes());
system.out.println(
"jdk sha-1 : "
+ hex.encodehexstring(md.digest()));
}
catch
(nosuchalgorithmexception e) {
e.printstacktrace();
}
}
public
static
void
bcsha1() {
digest digest =
new
sha1digest();
digest.update(src.getbytes(),
0
, src.getbytes().length);
byte
[] sha1bytes =
new
byte
[digest.getdigestsize()];
digest.dofinal(sha1bytes,
0
);
system.out.println(
"bc sha-1 : "
+ org.bouncycastle.util.encoders.hex.tohexstring(sha1bytes));
}
public
static
void
bcsha224() {
digest digest =
new
sha224digest();
digest.update(src.getbytes(),
0
, src.getbytes().length);
byte
[] sha224bytes =
new
byte
[digest.getdigestsize()];
digest.dofinal(sha224bytes,
0
);
system.out.println(
"bc sha-224 : "
+ org.bouncycastle.util.encoders.hex.tohexstring(sha224bytes));
}
public
static
void
ccsha1() {
system.out.println(
"cc sha1 - 1 :"
+ digestutils.sha1hex(src.getbytes()));
system.out.println(
"cc sha1 - 2 :"
+ digestutils.sha1hex(src));
}
//384、256、512。。。。。。
}
|
四 运行结果 。
jdk sha-1 : ba28a0f5f08efc8afaee4706ffd496e1f88befdb bc sha-1 : ba28a0f5f08efc8afaee4706ffd496e1f88befdb bc sha-224 : ae3b58439cd53d28455781fe6dc20c83a45d63e1d9550330c7911f58 cc sha1 - 1 :ba28a0f5f08efc8afaee4706ffd496e1f88befdb cc sha1 - 2 :ba28a0f5f08efc8afaee4706ffd496e1f88befdb 。
五 sha算法应用 。
希望本文所述对大家java程序设计有所帮助.
原文链接:https://blog.csdn.net/chengqiuming/article/details/78760791 。
最后此篇关于Java实现SHA算法的方法详解的文章就讲到这里了,如果你想了解更多关于Java实现SHA算法的方法详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
安全服务 API 似乎不允许我直接计算哈希。有很多公共(public)领域和自由许可的版本可用,但如果可能的话,我宁愿使用系统库实现。 可以通过 NSData 或普通指针访问数据。 哈希的加密强度对我
我有一堆大对象,以及它们的结构和它们的向量。有时检查复合对象的完整性很重要;为此,我正在使用对象的 Sha256“签名”。 至少有两种方法可以定义复合对象的签名:通过计算组件串联的sha,或者通过计算
研究了一个 cpu 矿工的源代码,我发现了这段代码: work->data[20] = 0x80000000; 好吧,我问了编码,他的回答是: “这些值是标准 SHA-2 填充的一部分” 谷歌搜索“s
您是否需要许可证才能将 SHA-1 或 SHA-2 用于商业目的? 最佳答案 它最初由 NSA 为安全 DSA 加密创建,然后被 NIST 采用以维护算法的所有方面以及 SHA(2 和 3)。 这是一
谁能解释一下 SHA-256 和 RIPEMD-160,哪种算法通常更快,性能和空间比较是什么(如果有)?我所说的空间比较并不是指 160 位和 256 位,而是指冲突频率、生产环境中空间要求的差异。
我对 SHA-2 和 SHA-256 之间的区别有点困惑,并且经常听到它们互换使用。我认为 SHA-2 是哈希算法的“家族”,而 SHA-256 是该家族中的特定算法。任何人都可以消除困惑。 最佳答案
我正在尝试从 SHA-1 更改为 SHA-512 以获得更好的安全性,但我不完全清楚如何进行更改。 这是我使用 SHA-1 的方法: public static String sha1Convert(
在我的 C# 应用程序中,我使用 RSA 对文件进行签名,然后再由上传者上传到我公司的数据库中,在这里我必须选择 SHA-1 或 SHA-2 来计算哈希值。与编程中的任何其他组件一样,我知道必须有一个
我正在研究 SHA1 、 SHA-256 、 SHA-512 在不同处理器上的速度(计算哈希的时间) 这些散列算法可以分解为跨多个核心/线程运行吗? 最佳答案 如果您想将计算单个哈希的执行并行化(无论
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
这个问题在这里已经有了答案: SHA2 password hashing in java (4 个答案) 关闭 9 年前。 我需要计算文件的 SHA-2 或 SHA-3。我没有提交任何代码示例来说明
在我的应用中,之前开发者已经使用openssl version 1.0.1e [#include openssl/sha.h]并且已经使用了函数 unsigned char *SHA(const un
我正在尝试实现 SHA-2加密而不是 SHA-1 . 为此,我知道这两种哈希算法之间的位数不同,这让我很困惑。 如何实现这一目标以及我需要在哪些部分进行必要的更改? 我可以使用来自 Java、Pyth
我目前正在使用 SHA-1。我像下面的代码一样使用它,但我想将它更改为 SHA-256。 public String sha1Encrypt(String str) { if(str == nul
我想将一些 Java 代码转换为 C#。 Java 代码: private static final byte[] SALT = "NJui8*&N823bVvy03^4N".getBytes()
我的程序使用 SHA-1 证书进行 SSL 连接。 SHA-2 证书现在已被一些网络服务(Gmail)广泛使用。这会导致在电子邮件通知设置期间阻止与 SMTP 服务器的传入连接。 为了发送电子邮件,我
我在提交中生成差异/更改,以便我可以将其上传到 ReviewBoard。 我使用了“git show d9f7121e8ebd4d1f789dab9f8214ada2h480b9cf”。它给了我 di
我刚刚从这个 HN-post 了解到 git 正在转向新的散列算法(从 SHA-1 到 SHA-256 ) 我想知道是什么让 SHA-256 最适合 git 的用例。 是否有任何/许多强有力的技术原因
是的,我需要降级到 SHA-1 以增加对项目中旧浏览器的兼容性。 有没有办法做到这一点? 我正在使用 Linux Centos 6.5 和 Apache/2.2.15。 我有 3 个文件: SSLCe
在 TLS1.1 和 TLS1.2 中,Cipher(rsa-with-aes-128-cbc-sha) 将使用哪个 Digest(SHA1 或 SHA256)? 最佳答案 根据官方openssl w
我是一名优秀的程序员,十分优秀!