小编Eug*_*ene的帖子

Java数字签名与C#不同

我有以下c#代码从私钥生成数字签名:

    static string Sign(string text, string certificate)
    {

        X509Certificate2 cert = new X509Certificate2(certificate, "TestPassword", X509KeyStorageFlags.Exportable);
        RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey;
        // Hash the data
        SHA1Managed sha1 = new SHA1Managed();
        ASCIIEncoding encoding = new ASCIIEncoding();
        byte[] data = encoding.GetBytes(text);
        byte[] hash = sha1.ComputeHash(data);
        // Sign the hash
        return System.Convert.ToBase64String(rsa.SignHash(hash, CryptoConfig.MapNameToOID("SHA1")));            
    }
Run Code Online (Sandbox Code Playgroud)

然后我创建了我认为是等效的java代码:

public static String signData(String dataToSign, String keyFile) { 
  FileInputStream keyfis = null;
  try {
    keyfis = new FileInputStream(fileName);
    KeyStore store = KeyStore.getInstance("PKCS12");
    store.load(keyfis, "TestPassword".toCharArray());
    KeyStore.PrivateKeyEntry pvk = (KeyStore.PrivateKeyEntry)store.
          getEntry("testkey", 
          new …
Run Code Online (Sandbox Code Playgroud)

c# java digital-signature

5
推荐指数
1
解决办法
2804
查看次数

标签 统计

c# ×1

digital-signature ×1

java ×1