當前位置:首頁 » 編程語言 » 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 不能為空…仔細瞧瞧各個參數設置是否正確吧…

熱點內容
我的世界國際服一進伺服器就崩 發布:2025-01-06 05:30:53 瀏覽:395
雲主機網站源碼 發布:2025-01-06 05:30:40 瀏覽:88
整數指數冪的運演算法則 發布:2025-01-06 05:22:32 瀏覽:362
php數據緩存技術 發布:2025-01-06 05:22:24 瀏覽:516
jdk卸載linux 發布:2025-01-06 05:21:48 瀏覽:665
昂克賽拉哪個配置最走量 發布:2025-01-06 05:13:03 瀏覽:425
稅務uk密碼是什麼密碼 發布:2025-01-06 05:10:45 瀏覽:41
羅蘭音響什麼配置較好 發布:2025-01-06 05:09:17 瀏覽:794
怎麼查看伺服器是虛擬還是實體機 發布:2025-01-06 05:09:16 瀏覽:46
清除手機緩存軟體 發布:2025-01-06 04:56:29 瀏覽:329