亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求大神看一下,我的代碼運行報錯

我運行出來報錯,

java.security.NoSuchAlgorithmException: EC KeyPairGenerator not available

at java.security.KeyPairGenerator.getInstance(KeyPairGenerator.java:176)

at ECDSA.ECDSA.jdkecdsa(ECDSA.java:26)

at ECDSA.ECDSA.main(ECDSA.java:20)

怎么回事????哪錯了

正在回答

2 回答

JDK的版本可能低,不支持

2 回復 有任何疑惑可以回復我~
#1

京飛

確實是???
2017-04-26 回復 有任何疑惑可以回復我~
#2

京飛 回復 京飛

jdk1.7之后的才行
2017-04-26 回復 有任何疑惑可以回復我~

我的代碼

package?ECDSA;

import?java.security.KeyFactory;
import?java.security.KeyPair;
import?java.security.KeyPairGenerator;
import?java.security.PrivateKey;
import?java.security.PublicKey;
import?java.security.Signature;
import?java.security.interfaces.ECPrivateKey;
import?java.security.interfaces.ECPublicKey;
import?java.security.spec.PKCS8EncodedKeySpec;
import?java.security.spec.X509EncodedKeySpec;
import?org.apache.commons.codec.binary.Hex;

public?class?ECDSA?{

	private?static?String?src?="imooc?security?ecdsa";
	public?static?void?main(String[]?args)?{
		jdkecdsa();
	}
	
	public?static?void?jdkecdsa(){
		try?{
			//初始化秘鑰
			KeyPairGenerator?keyPairGenerator?=?KeyPairGenerator.getInstance("EC");
			keyPairGenerator.initialize(256);
			KeyPair?keyPair?=?keyPairGenerator.generateKeyPair();
			ECPublicKey?ecPublicKey?=?(ECPublicKey)keyPair.getPublic();
			ECPrivateKey?ecPrivateKey?=(ECPrivateKey)?keyPair.getPrivate();
			
			//執行簽名
			PKCS8EncodedKeySpec?pkcs8EncodedKeySpec?=?new?PKCS8EncodedKeySpec(ecPrivateKey.getEncoded());
			KeyFactory?keyFactory?=?KeyFactory.getInstance("EC");
			PrivateKey?privateKey?=?keyFactory.generatePrivate(pkcs8EncodedKeySpec);
			Signature?signature?=?Signature.getInstance("SHA1withECDSA");
			signature.initSign(privateKey);
			signature.update(src.getBytes());
			byte[]?result?=?signature.sign();
			System.out.println("jdk?escdsa?sign:"+Hex.encodeHexString(result));
			
			//驗證簽名
			X509EncodedKeySpec?x509EncodedKeySpec?=?new?X509EncodedKeySpec(ecPublicKey.getEncoded());
			keyFactory?=?KeyFactory.getInstance("EC");
			PublicKey?publicKey?=?keyFactory.generatePublic(x509EncodedKeySpec);
			signature?=?Signature.getInstance("SHA1withECDSA");
			signature.initVerify(publicKey);
			signature.update(src.getBytes());
			boolean?bool?=?signature.verify(result);
			System.out.println("jdk?ecdsa?verfiy:"+bool);
		}?catch?(Exception?e)?{
			e.printStackTrace();
		}
	}
}


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

求大神看一下,我的代碼運行報錯

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號