java DSA Signature Sign And Verify

SignatureSignAndVerify

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.Security;
import java.security.Signature;

public class SignatureSignAndVerify {

      public static void main(String args[]) throws Exception {
        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

        KeyPair keyPair = generateKeyPair(999);

        byte[] data = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 };
        byte[] digitalSignature = signData(data, keyPair.getPrivate());

        boolean verified;

        verified = verifySig(data, keyPair.getPublic(), digitalSignature);
        System.out.println(verified) ;

        keyPair = generateKeyPair(888);
        verified = verifySig(data, keyPair.getPublic(), digitalSignature);
        System.out.println(verified);

      }

      public static byte[] signData(byte[] data, PrivateKey key) throws Exception {
        Signature signer = Signature.getInstance("SHA1withDSA");
        signer.initSign(key);
        signer.update(data);
        return (signer.sign());
      }

      public static boolean verifySig(byte[] data, PublicKey key, byte[] sig) throws Exception {
        Signature signer = Signature.getInstance("SHA1withDSA");
        signer.initVerify(key);
        signer.update(data);
        return (signer.verify(sig));

      }

      public static KeyPair generateKeyPair(long seed) throws Exception {
        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
        KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("DSA");
        SecureRandom rng = SecureRandom.getInstance("SHA1PRNG", "SUN");
        rng.setSeed(seed);
        keyGenerator.initialize(1024, rng);

        return (keyGenerator.generateKeyPair());
      }
}
时间: 2024-10-08 17:24:05

java DSA Signature Sign And Verify的相关文章

安装mysql 偶遇:warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY

[[email protected] yum.repos.d]# rpm -e --nodeps mysql error: package mysql is not installed [[email protected] yum.repos.d]# rpm -qa |grep mysql [[email protected] yum.repos.d]# yum install mysql =====================================================

REDHAT使用yum安装出现rpmts_HdrFromFdno: Header V3 DSA signature错误

今天使用yum安装方式为几台REDHAT5.5的系统升级Python,一台安装时候报了一个错误: Downloading Packages: warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 217521f6 百度后确认原因是:由于yum安装了旧版本的GPG keys造成. 网上推荐的方法是使用命令: #rpm --import /etc/pki/rpm-gpg/RPM* 编辑yum.conf 文件,把里面的gp

安装rpm包时遇到Header V3 DSA signature: NOKEY时解决办法

安装rpm包,特别是没有GPGkey校验,原因是rpm版本过低导致的. 代码如下: warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID***** 由于yum安装了旧版本的GPG keys造成的,解决办法就是 01.导入gpg 代码如下: rpm --import /etc/pki/rpm-gpg/RPM* linux/centos Header V3 DSA signature: NOKEY, key ID 错误解

rpm包时遇到Header V3 DSA signature: NOKEY时解决办法

在安装Mysql-5.5时遇到rpm包时遇到 Header V3 DSA signature: NOKEY问题 报错情况如下: warning: MySQL-server-5.5.48-1.linux2.6.i386.rpm: Header V3 DSA signature: NOKEY, key ID 5072e1f5error: Failed dependencies: libaio.so.1 is needed by MySQL-server-5.5.48-1.linux2.6.i386

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID

报错 这是由于安装了旧版本的GPG keys造成的,解决办法就是 引用rpm --import /etc/pki/rpm-gpg/RPM* /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL  这个文件有可能为空 加上这些内容,ok -----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v1.2.6 (GNU/Linux) mQGiBEXopTIRBACZDBMOoFOakAjaxw1LXjeSvh/kmE35fU1rXfM7T0A

Java的Signature签名转换成.Net

Java: Signature sig = Signature.getInstance("SHA1withRSA"); sig.initSign(rsaPrivateKey); sig.update(data); locallySigned = sig.sign(); c#: /// <summary> /// RSA签名 /// </summary> /// <param name="privateKey">私钥</par

RHEL6关于Header V3 DSA signature: NOKEY, key ID错误解决方法

通过yum命令在安装软件时的时候,提示如下错误: warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Public key for tigervnc-1.0.90-0.15.20110314vnc4359.el6.x86_64.rpm is not installed    据网上资料说这是由于yum安装了旧版本的GPG keys造成的. 解决办法就是 >rpm --import /

RHEL6 Header V3 DSA signature: NOKEY, key ID错误的解决方法

yum 安装软件时提示warning ,导致安装失败.如下图: 据网上资料说这是由于yum安装了旧版本的GPG keys造成的. 解决办法就是 rpm --import /etc/pki/rpm-gpg/RPM*

java 加密解密算法MD5/SHA1,DSA

通常,使用的加密算法 比较简便高效,密钥简短,加解密速度快,破译极其困难.本文介绍了 MD5/SHA1,DSA,DESede/DES,Diffie-Hellman的使用. 第1章基础知识 1.1. 单钥密码体制 单钥密码体制是一种传统的加密算法,是指信息的发送方和接收方共同使用同一把密钥进行加解密. 通常,使用的加密算法比较简便高效,密钥简短,加解密速度快,破译极其困难.但是加密的安全性依靠密钥保管的安全性,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题,并且如果在多用户的情况下密钥的