当前位置: 首页>>代码示例>>Java>>正文


Java Signature.initSign方法代码示例

本文整理汇总了Java中java.security.Signature.initSign方法的典型用法代码示例。如果您正苦于以下问题:Java Signature.initSign方法的具体用法?Java Signature.initSign怎么用?Java Signature.initSign使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.security.Signature的用法示例。


在下文中一共展示了Signature.initSign方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: signatureTest

import java.security.Signature; //导入方法依赖的package包/类
private void signatureTest(ValueSigner signer, KeyPairGenerator generator) throws Exception {
  byte[] data = "HELLO".getBytes();
  Signature signature = signer.getInstance(null);
  KeyPair pair = generator.generateKeyPair();

  signature.initSign(pair.getPrivate());
  signature.update(data);
  byte[] digest = signature.sign();

  assertThat("digest has a value", TestUtils.wrap(digest), is(not(emptyArray())));

  signature.initVerify(pair.getPublic());
  signature.update(data);
  assertThat("verification succeeds", signature.verify(digest), is(true));

  switch (signer) {
    case RSA_PKCS1:
      break;

    default:
      signature.initSign(pair.getPrivate());
      signature.update(data);
      assertThat("signatures correctly use random padding", signature.sign(), not(equalTo(digest)));
  }
}
 
开发者ID:mit-ll,项目名称:PACE,代码行数:26,代码来源:ValueSignerTest.java

示例2: sign

import java.security.Signature; //导入方法依赖的package包/类
/**
 * 签名
 * 
 * @param data 待签名数据
 * @param privateKey 私钥
 * @return byte[] 数字签名
 * @throws Exception
 */
public static byte[] sign(byte[] data, byte[] privateKey) throws Exception {
	// 转换私钥材料
	PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(privateKey);
	// 实例化密钥工厂
	KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
	// 取私钥匙对象
	PrivateKey priKey = keyFactory.generatePrivate(pkcs8KeySpec);
	// 实例化Signature
	Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
	// 初始化Signature
	signature.initSign(priKey);
	// 更新
	signature.update(data);
	// 签名
	return signature.sign();
}
 
开发者ID:guokezheng,项目名称:automat,代码行数:25,代码来源:RSACoder.java

示例3: sign

import java.security.Signature; //导入方法依赖的package包/类
/**
 * 用私钥对信息生成数字签名
 * 
 * @param data
 *            加密数据
 * @param privateKey
 *            私钥
 * 
 * @return
 * @throws Exception
 */
public static String sign(byte[] data, String privateKey) throws Exception {
	// 解密由base64编码的私钥
	byte[] keyBytes = decryptBASE64(privateKey);

	// 构造PKCS8EncodedKeySpec对象
	PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);

	// KEY_ALGORITHM 指定的加密算法
	KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);

	// 取私钥匙对象
	PrivateKey priKey = keyFactory.generatePrivate(pkcs8KeySpec);

	// 用私钥对信息生成数字签名
	Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
	signature.initSign(priKey);
	signature.update(data);

	return encryptBASE64(signature.sign());
}
 
开发者ID:wooui,项目名称:springboot-training,代码行数:32,代码来源:RSACoder.java

示例4: createEncoder

import java.security.Signature; //导入方法依赖的package包/类
@Override
public OneWayCodec createEncoder() throws Exception {
    final Signature signature = Signature.getInstance(signatureAlgorithmName);
    signature.initSign(keyPair.getPrivate());

    return new OneWayCodec() {

        @Override
        public byte[] code(final byte[] data) throws Exception {
            final int dataLen = data.length;
            final byte[] b = new byte[dataLen + signatureLength];
            System.arraycopy(data, 0, b, 0, dataLen);
            signature.update(data);
            signature.sign(b, dataLen, signatureLength);
            return b;
        }
    };
}
 
开发者ID:szegedi,项目名称:spring-web-jsflow,代码行数:19,代码来源:IntegrityCodec.java

示例5: sign

import java.security.Signature; //导入方法依赖的package包/类
private byte[] sign(byte[] message) throws GeneralSecurityException {
    if (privateKey == null) {
        throw new IllegalStateException("need to set private key with " +
                                        "OAuthConsumer.setProperty when " +
                                        "generating RSA-SHA1 signatures.");
    }
    Signature signer = Signature.getInstance("SHA1withRSA");
    signer.initSign(privateKey);
    signer.update(message);
    return signer.sign();
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:12,代码来源:RSA_SHA1.java

示例6: use

import java.security.Signature; //导入方法依赖的package包/类
static boolean use(KeyPair kp) throws Exception {
     Signature sig = Signature.getInstance("SHA1withDSA");
     sig.initSign(kp.getPrivate());
     sig.update(data);
     byte[] signed = sig.sign();
     Signature sig2 = Signature.getInstance("SHA1withDSA");
     sig2.initVerify(kp.getPublic());
     sig2.update(data);
     return sig2.verify(signed);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:11,代码来源:SolarisShortDSA.java

示例7: sign

import java.security.Signature; //导入方法依赖的package包/类
/**
 * 用私钥对信息生成数字签名
 *
 * @param data       加密数据
 * @param privateKey 私钥
 * @return
 * @throws Exception
 */
public static String sign(byte[] data, String privateKey) throws Exception {
    byte[] keyBytes = BASE64.decode(privateKey);        // 解密由base64编码的私钥
    PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);   // 构造PKCS8EncodedKeySpec对象
    KeyFactory keyFactory = KeyFactory.getInstance(Algorithm.RSA.getType());    // KEY_ALGORITHM 指定的加密算法
    PrivateKey priKey = keyFactory.generatePrivate(pkcs8KeySpec);        // 取私钥匙对象
    Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);   // 用私钥对信息生成数字签名
    signature.initSign(priKey);
    signature.update(data);

    return BASE64.encodeToString(signature.sign());
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:20,代码来源:Codec.java

示例8: signBySoft256

import java.security.Signature; //导入方法依赖的package包/类
/**
 * @param privateKey
 * @param data
 * @return
 * @throws Exception
 */
public static byte[] signBySoft256(PrivateKey privateKey, byte[] data)
		throws Exception {
	byte[] result = null;
	Signature st = Signature.getInstance(BC_PROV_ALGORITHM_SHA256RSA, "BC");
	st.initSign(privateKey);
	st.update(data);
	result = st.sign();
	return result;
}
 
开发者ID:Javen205,项目名称:IJPay,代码行数:16,代码来源:SecureUtil.java

示例9: signBySoft

import java.security.Signature; //导入方法依赖的package包/类
/**
 * @param privateKey
 * @param data
 * @return
 * @throws Exception
 */
public static byte[] signBySoft(PrivateKey privateKey, byte[] data)
        throws Exception {
    byte[] result = null;
    Signature st = Signature.getInstance(BC_PROV_ALGORITHM_SHA1RSA, "BC");
    st.initSign(privateKey);
    st.update(data);
    result = st.sign();
    return result;
}
 
开发者ID:howe,项目名称:nutz-pay,代码行数:16,代码来源:SecureUtil.java

示例10: sign

import java.security.Signature; //导入方法依赖的package包/类
/**
 * 获取数字签名
 *
 * @param data       二进制位
 * @param privateKey 私钥(BASE64编码)
 * @return 数字签名结果字符串
 * @throws Exception 异常
 */
public static String sign(byte[] data, String privateKey) throws Exception {
    byte[] keyBytes = Base64.decode(privateKey.getBytes(), Base64.DEFAULT);
    PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);
    KeyFactory keyFactory = getKeyFactory();
    PrivateKey privateK = keyFactory.generatePrivate(pkcs8KeySpec);

    Signature signature = Signature.getInstance("MD5withRSA");
    signature.initSign(privateK);
    signature.update(data);
    return new String(Base64.encode(signature.sign(), Base64.DEFAULT));
}
 
开发者ID:GcsSloop,项目名称:encrypt,代码行数:20,代码来源:RSAUtil.java

示例11: calculateSignature

import java.security.Signature; //导入方法依赖的package包/类
static byte[] calculateSignature(
    DERObjectIdentifier sigOid,
    String              sigName,
    PrivateKey          key,
    SecureRandom        random,
    ASN1Encodable       object)
    throws IOException, NoSuchAlgorithmException, InvalidKeyException, SignatureException
{
    Signature sig;

    if (sigOid == null)
    {
        throw new IllegalStateException("no signature algorithm specified");
    }

    sig = X509Util.getSignatureInstance(sigName);

    if (random != null)
    {
        sig.initSign(key, random);
    }
    else
    {
        sig.initSign(key);
    }

    sig.update(object.toASN1Primitive().getEncoded(ASN1Encoding.DER));

    return sig.sign();
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:31,代码来源:X509Util.java

示例12: sign

import java.security.Signature; //导入方法依赖的package包/类
protected static byte[] sign(Class signatureClass, Object entity, Timestamp now, int depth, StringBuilder comment) throws Exception {
	Signature signature = getSignature();
	signature.initSign(CoreUtil.getUserContext().getPrivateKey());
	updateSignature(entity, getEntitySignatures(signatureClass, entity.getClass(), depth), signature, CoreUtil.getUser(), now, comment);
	//FileUtils.writeStringToFile(new java.io.File("d:\\ctsms\\sign_" + now.getTime() + ".txt"),comment.toString());
	return signature.sign();
}
 
开发者ID:phoenixctms,项目名称:ctsms,代码行数:8,代码来源:EntitySignature.java

示例13: sign

import java.security.Signature; //导入方法依赖的package包/类
/**
 * Encodes an X.509 CRL, and signs it using the given key.
 *
 * @param key the private key used for signing.
 * @param algorithm the name of the signature algorithm used.
 * @param provider the name of the provider.
 *
 * @exception NoSuchAlgorithmException on unsupported signature
 * algorithms.
 * @exception InvalidKeyException on incorrect key.
 * @exception NoSuchProviderException on incorrect provider.
 * @exception SignatureException on signature errors.
 * @exception CRLException if any mandatory data was omitted.
 */
public void sign(PrivateKey key, String algorithm, String provider)
throws CRLException, NoSuchAlgorithmException, InvalidKeyException,
    NoSuchProviderException, SignatureException {
    try {
        if (readOnly)
            throw new CRLException("cannot over-write existing CRL");
        Signature sigEngine = null;
        if ((provider == null) || (provider.length() == 0))
            sigEngine = Signature.getInstance(algorithm);
        else
            sigEngine = Signature.getInstance(algorithm, provider);

        sigEngine.initSign(key);

                            // in case the name is reset
        sigAlgId = AlgorithmId.get(sigEngine.getAlgorithm());
        infoSigAlgId = sigAlgId;

        DerOutputStream out = new DerOutputStream();
        DerOutputStream tmp = new DerOutputStream();

        // encode crl info
        encodeInfo(tmp);

        // encode algorithm identifier
        sigAlgId.encode(tmp);

        // Create and encode the signature itself.
        sigEngine.update(tbsCertList, 0, tbsCertList.length);
        signature = sigEngine.sign();
        tmp.putBitString(signature);

        // Wrap the signed data in a SEQUENCE { data, algorithm, sig }
        out.write(DerValue.tag_Sequence, tmp);
        signedCRL = out.toByteArray();
        readOnly = true;

    } catch (IOException e) {
        throw new CRLException("Error while encoding data: " +
                               e.getMessage());
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:57,代码来源:X509CRLImpl.java

示例14: testWolfSignInitMulti

import java.security.Signature; //导入方法依赖的package包/类
@Test
public void testWolfSignInitMulti()
    throws NoSuchProviderException, NoSuchAlgorithmException,
           SignatureException, InvalidKeyException,
           InvalidAlgorithmParameterException {

    String toSign = "Hello World";
    byte[] toSignBuf = toSign.getBytes();
    byte[] signature = null;

    for (int i = 0; i < wolfJCEAlgos.length; i++) {

        Signature signer =
            Signature.getInstance(wolfJCEAlgos[i], "wolfJCE");
        Signature verifier =
            Signature.getInstance(wolfJCEAlgos[i], "wolfJCE");

        assertNotNull(signer);
        assertNotNull(verifier);

        SecureRandom rand =
            SecureRandom.getInstance("HashDRBG", "wolfJCE");
        assertNotNull(rand);

        /* generate key pair */
        KeyPair pair = generateKeyPair(wolfJCEAlgos[i], rand);
        assertNotNull(pair);

        PrivateKey priv = pair.getPrivate();
        PublicKey  pub  = pair.getPublic();

        /* test multiple inits on signer */
        signer.initSign(priv);
        signer.initSign(priv);

        /* test multiple inits on verifier */
        verifier.initVerify(pub);
        verifier.initVerify(pub);

        /* make sure sign/verify still work after multi init */
        signer.update(toSignBuf, 0, toSignBuf.length);
        signature = signer.sign();

        verifier.update(toSignBuf, 0, toSignBuf.length);
        boolean verified = verifier.verify(signature);

        if (verified != true) {
            fail("Signature verification failed when generating with " +
                    "wolfJCE and verifying with system default JCE " +
                    "provider");
        }
    }
}
 
开发者ID:wolfSSL,项目名称:wolfcrypt-jni,代码行数:54,代码来源:WolfCryptSignatureTest.java

示例15: getUserSig

import java.security.Signature; //导入方法依赖的package包/类
@Override
public String getUserSig(String identifier, long expire)throws QCloudException {
	try {
		 	Security.addProvider(new BouncyCastleProvider());
	        Reader reader = new CharArrayReader(imConfig.getPrivateKey().toCharArray());
	        JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
	        PEMParser parser = new PEMParser(reader);
	        Object obj = parser.readObject();
	        parser.close();
	    	PrivateKey privKeyStruct = converter.getPrivateKey((PrivateKeyInfo) obj);
			
			String jsonString = "{" 
			+ "\"TLS.account_type\":\"" + 0 +"\","
			+"\"TLS.identifier\":\"" + identifier +"\","
			+"\"TLS.appid_at_3rd\":\"" + 0 +"\","
		    +"\"TLS.sdk_appid\":\"" + imConfig.getSdkAppId() +"\","
			+"\"TLS.expire_after\":\"" + expire +"\","
	        +"\"TLS.version\": \"201512300000\""
			+"}";
			
			String time = String.valueOf(System.currentTimeMillis()/1000);
			String SerialString = 
				"TLS.appid_at_3rd:" + 0 + "\n" +
				"TLS.account_type:" + 0 + "\n" +
				"TLS.identifier:" + identifier + "\n" + 
				"TLS.sdk_appid:" + imConfig.getSdkAppId() + "\n" + 
				"TLS.time:" + time + "\n" +
				"TLS.expire_after:" + expire +"\n";
			
			//Create Signature by SerialString
			Signature signature = Signature.getInstance("SHA256withECDSA", "BC");
			signature.initSign(privKeyStruct);
			signature.update(SerialString.getBytes(Charset.forName("UTF-8")));
			byte[] signatureBytes = signature.sign();
			
			String sigTLS = Base64.encodeBase64String(signatureBytes);
			
			//Add TlsSig to jsonString
		    JSONObject jsonObject= JSON.parseObject(jsonString);
		    jsonObject.put("TLS.sig", (Object)sigTLS);
		    jsonObject.put("TLS.time", (Object)time);
		    jsonString = jsonObject.toString();
		    
		    //compression
		    Deflater compresser = new Deflater();
		    compresser.setInput(jsonString.getBytes(Charset.forName("UTF-8")));

		    compresser.finish();
		    byte [] compressBytes = new byte [512];
		    int compressBytesLength = compresser.deflate(compressBytes);
		    compresser.end();
		    return new String(Base64Url.base64EncodeUrl(Arrays.copyOfRange(compressBytes,0,compressBytesLength)));
	}catch (Exception e) {
		throw new  QCloudException(e);
	}
}
 
开发者ID:51wakeup,项目名称:wakeup-qcloud-sdk,代码行数:57,代码来源:DefaultQCloudClient.java


注:本文中的java.security.Signature.initSign方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。