java.security.interfaces.DSAPublicKey#getEncoded ( )源码实例Demo

下面列出了java.security.interfaces.DSAPublicKey#getEncoded ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: quarkus   文件: DSAKeyUtil.java

public static void main(String[] args) throws Exception {
    Provider provider = Security.getProvider("SUN");
    System.out.println(provider.getInfo());
    for (Provider.Service service : provider.getServices()) {
        System.out.println(service);
    }

    KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");
    kpg.initialize(2048);
    System.out.println("DSA.provider: " + kpg.getProvider());
    KeyFactory keyFactory = KeyFactory.getInstance("DSA");
    System.out.println("DSA.provider: " + keyFactory.getProvider());

    KeyPair pair = kpg.genKeyPair();
    DSAPublicKey publicKey = (DSAPublicKey) pair.getPublic();
    byte[] encoded = publicKey.getEncoded();
    X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(encoded);
    DSAPublicKey publicKey1 = (DSAPublicKey) keyFactory.generatePublic(publicKeySpec);
    System.out.printf("keys are equal: %s%n", publicKey1.equals(publicKey));

    String base64 = Base64.getEncoder().encodeToString(encoded);
    System.out.println(base64);
}
 

@Override
public KeyProxy serialize(DSAPublicKey obj) {
    log.info("DSAPublicKeyObjectSubstitution.serialize");
    byte[] encoded = obj.getEncoded();
    KeyProxy proxy = new KeyProxy();
    proxy.setContent(encoded);
    return proxy;
}
 
源代码3 项目: java_security   文件: DSATest.java

/**
 * 
 * @author timliu
 * 说明: 用java的jdk里面相关方法实现dsa的签名及签名验证
 */
public static void jdkDSA()
{
	try {
		// 1.初始化密钥
		KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA");
		keyPairGenerator.initialize(512);
		KeyPair keyPair = keyPairGenerator.generateKeyPair();
		DSAPublicKey dsaPublicKey = (DSAPublicKey)keyPair.getPublic();
		DSAPrivateKey dsaPrivateKey = (DSAPrivateKey)keyPair.getPrivate();
		
		// 2.进行签名
		PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(dsaPrivateKey.getEncoded());
		KeyFactory keyFactory = KeyFactory.getInstance("DSA");
		PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
		Signature signature = Signature.getInstance("SHA1withDSA");
		signature.initSign(privateKey);
		signature.update(src.getBytes());
		byte[] result = signature.sign();
		System.out.println("jdk dsa sign:" + Hex.encodeHexString(result) );
		
		// 3.验证签名
		X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(dsaPublicKey.getEncoded());
		keyFactory = KeyFactory.getInstance("DSA");
		PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);
		signature = Signature.getInstance("SHA1withDSA");
		signature.initVerify(publicKey);
		signature.update(src.getBytes());
		boolean bool = signature.verify(result);
		System.out.println("jdk dsa verify:" + bool);
	} catch (Exception e) {
		System.out.println(e.toString());
	}
	
}