当前位置:首页 » 编程语言 » javasha1加密

javasha1加密

发布时间: 2022-10-29 18:14:31

‘壹’ java,已知加密字符串,怎么生成cer文件求代码

packagecom.tgtbj.dsf.certhelper;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.math.BigInteger;
importjava.security.KeyPair;
importjava.security.KeyPairGenerator;
importjava.security.KeyStore;
importjava.security.cert.Certificate;
importjava.security.cert.CertificateEncodingException;
importjava.security.cert.X509Certificate;
importjava.util.Date;
importjavax.security.auth.x500.X500Principal;
importorg.bouncycastle.x509.X509V3CertificateGenerator;
publicclassTT{
publicstaticvoidgenCertFile(StringcertPath,Stringpassword,
intkeysize,Stringalgorithm)throwsException{
//创建KeyStore
KeyStorestore=KeyStore.getInstance("PKCS12");
store.load(null,null);
//生成一对公私钥,这部分如果自己已经有了PublicKey,可以直接在下面使用,不用生成
KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA");
kpg.initialize(keysize);
KeyPairkeyPair=kpg.generateKeyPair();
//这个字符串根据自己情况填
Stringissuer="C=CN,ST=BJ,L=BJ,O=SSS,OU=SC,CN=SSS";
Stringsubject=issuer;
=newX509V3CertificateGenerator();
certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));
certGen.setIssuerDN(newX500Principal(issuer));
certGen.setNotBefore(newDate(System.currentTimeMillis()-10*365
*24*60*60*1000));
certGen.setNotAfter(newDate(System.currentTimeMillis()+10*365*24
*60*60*1000));
certGen.setSubjectDN(newX500Principal(subject));
certGen.setPublicKey(keyPair.getPublic());//此处可直接传入线程的PublicKey
if(algorithm==null||algorithm.equals("")){
certGen.setSignatureAlgorithm("SHA256WithRSAEncryption");
}else{
certGen.setSignatureAlgorithm(algorithm);
}
X509Certificatecert=certGen.generateX509Certificate(keyPair
.getPrivate());
//私钥有现成的也可直接传入
store.setKeyEntry("alias",keyPair.getPrivate(),
password.toCharArray(),newCertificate[]{cert});
//导出为cer证书
try{
FileOutputStreamfos=newFileOutputStream(certPath+".cer");
fos.write(cert.getEncoded());
fos.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(CertificateEncodingExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(Stringargs[])throwsException{
genCertFile("D:/opop1","qwafrt",1024,"SHA1WithRSA");
}
}

‘贰’ 面java的Sha1加密在c#中对应要怎么写

Apache工具类,DigestUtils,如果要自己实现的话,网上很多,maven的话直接点就有源码

‘叁’ 如何使用java进行sha1加密

使用下面的语句即可:
digestutils.shahex(要加密的字符);加密参数最好用字节数组,毕竟sha1算法是使用字节为单位进行运算的,字符串转字节还与字符编码有关。

‘肆’ 如何使用java进行sha1加密

简单的做法是
1、使用apache的codec jar包对string进行加密,先下载并引入jar包:http://commons.apache.org/proper/commons-codec/
2、生成:
String sign = DigestUtils.shaHex(str);

3.也可以使用工具在线进行sha加密,参考 hash值(md5, sha1, sha256, sha512,crc32) 在线计算,http://www.it399.com/m/FileHash。望采纳,谢谢。

‘伍’ php 如何实现 java的sha1加密

function
encryptTokey($data){
$apikey
=
'testapikey111';
$ps1
=
sha1($apikey
.
strtolower($data));
$ps1
=
strtoupper($ps1);
$s1
=
implode(str_split($ps1,
2),
'-');
$ps2
=
md5($s1
.
$apikey);
$ps2
=
strtoupper($ps2);
$token
=
implode(str_split($ps2,
2),
'-');
return
$token;
}
echo
encryptTokey('testdata');
运行结果:
68-10-98-74-4C-82-74-4B-CC-49-31-98-46-02-EE-8E
详细你可以去后盾人看看,这些都是后盾人里面的,哪里有详细的视频教学都是高质量,我自己就是在里面学的。

‘陆’ 面java的Sha1加密在c#中对应要怎么写

usingSystem.Security.Cryptography;usingSystem.IO;publicstringComputeFileSHA1(stringFileName){try{byte[]hr;using(SHA1ManagedHash=newSHA1Managed())//创建Hash算法对象{using(FileStreamfs=newFileStream(FileName,FileMode.Open))//创建文件流对象{hr=Hash.ComputeHash(fs);//计算}}returnBitConverter.ToString(hr).Replace("-","");//转化为十六进制字符串}catch(IOException){return"Error:访问文件时出现异常";}}其他算法同理,创建hash算法对象是创建对应的对象就行了CRC32没有自带类库,网上找代码吧

‘柒’ java KeyGenerator.getInstance("AES"); SecureRandom.getInstance("SHA1PRNG"); 生成的秘钥 php怎样解

sha1 md5这种加密是不可逆的啊,准确的说,解不了,如果简单的话,可以去网站的海量数据库试试

‘捌’ java的sha1加密和object-c的sha1加密后的值不一样,谁能帮我解决一下。多谢了

结果是一样的, 但是你多搞了一点: java你是用Base64编码成字符串, 而ObjC你是直接用16进制输出的, 你java上不Base64编码, 也输出成16进制, 就一样了;

‘玖’ 求教PHP和JAVA大神 base64_encode(hash_hmac('sha1',$public_key,$private_key,TRUE)); 转 java

如果你的API服务安全认证协议中要求使用hmac_sha1方法对信息进行编码,

而你的服务是由PHP实现的,客户端是由JAVA实现的,那么为了对签名正确比对,就需要在两者之间建立能匹配的编码方式.
efine('ID','123456');
define('KEY','k123456');

$strToSign = "test_string";

$utf8Str = mb_convert_encoding($strToSign, "UTF-8");
$hmac_sha1_str = base64_encode(hash_hmac("sha1", $utf8Str, KEY));
$signature = urlencode($hmac_sha1_str);
print_r($signature);

JAVA侧需要注意如下几点:
1. hmac_sha1编码结果需要转换成hex格式

2. java中base64的实现和php不一致,其中java并不会在字符串末尾填补=号以把字节数补充为8的整数
3. hmac_sha1并非sha1, hmac_sha1是需要共享密钥的

参考实现如下:
[java] view plain
import java.io.UnsupportedEncodingException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.wicket.util.crypt.Base64UrlSafe;

public class test {
public static void main(String[] args) {
String key = "";
String toHash = "GET"+"\n"+"Thu, 09 Aug 2012 13:33:46 +0000"+"\n"+"/ApiChannel/Report.m";
//String toHashUtf8 = URLEncoder.encode(toHash, "UTF-8");
String res = hmac_sha1(toHash, key);
//System.out.print(res+"\n");

String signature;
try {
signature = new String(Base64UrlSafe.encodeBase64(res.getBytes()),"UTF-8");
signature = appendEqualSign(signature);
System.out.print(signature);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

public static String hmac_sha1(String value, String key) {
try {
// Get an hmac_sha1 key from the raw key bytes
byte[] keyBytes = key.getBytes();
SecretKeySpec signingKey = new SecretKeySpec(keyBytes, "HmacSHA1");

// Get an hmac_sha1 Mac instance and initialize with the signing key
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(signingKey);

// Compute the hmac on input data bytes
byte[] rawHmac = mac.doFinal(value.getBytes());

// Convert raw bytes to Hex
String hexBytes = byte2hex(rawHmac);
return hexBytes;
} catch (Exception e) {
throw new RuntimeException(e);
}
}

private static String byte2hex(final byte[] b){
String hs="";
String stmp="";
for (int n=0; n<b.length; n++){
stmp=(java.lang.Integer.toHexString(b[n] & 0xFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
else hs=hs+stmp;
}
return hs;
}

private static String appendEqualSign(String s){
int len = s.length();
int appendNum = 8 - (int)(len/8);
for (int n=0; n<appendNum; n++){
s += "%3D";
}
return s;
}
}

参考:http://www.iteye.com/topic/1002652

‘拾’ 用java语言SHA1加密算法随即显示数字,运行时显示错误java.lang.NullPointerException: String is null

无需各个都看,第一行已经提示了…无指向,string 不能为空…仔细瞧瞧各个参数设置是否正确吧…

热点内容
myeclipse手动编译 发布:2025-01-07 19:28:35 浏览:750
阿里云数据库恢复 发布:2025-01-07 19:24:19 浏览:415
teradata数据库 发布:2025-01-07 19:23:31 浏览:853
我的世界电脑版无规矩生存服务器 发布:2025-01-07 19:21:07 浏览:611
phpcookie设置域 发布:2025-01-07 19:14:49 浏览:624
系统存储和内存设备 发布:2025-01-07 19:14:05 浏览:391
淘宝上卖源码 发布:2025-01-07 19:12:29 浏览:884
仿美团外卖小程序源码 发布:2025-01-07 19:03:51 浏览:346
数据库攻防 发布:2025-01-07 19:03:04 浏览:26
安卓打包生成apk文件在哪里 发布:2025-01-07 18:54:39 浏览:898