C RSA操作類(XML與PEM互轉)帶demo

2021-10-05 20:21:44 字數 4155 閱讀 3554

using org.bouncycastle.asn1.pkcs;

using org.bouncycastle.asn1.x509;

using org.bouncycastle.crypto;

using org.bouncycastle.crypto.encodings;

using org.bouncycastle.crypto.engines;

using org.bouncycastle.crypto.parameters;

using org.bouncycastle.math;

using org.bouncycastle.openssl;

using org.bouncycastle.pkcs;

using org.bouncycastle.security;

using org.bouncycastle.x509;

using system;

using system.collections.generic;

using system.io;

using system.linq;

using system.security.cryptography;

using system.text;

using system.threading.tasks;

namespace rsa加解密

#endregion

#region 獲取rsa金鑰對

/// /// 獲取xml格式金鑰對

///

/// xml私鑰

/// xml公鑰

public static void getxmlrsakeys(out string xmlprikey, out string xmlpubkey)

catch (exception ex)

}/// /// 獲取pem格式金鑰對

///

/// pem私鑰

/// pem公鑰

public static void getpemrsakeys(out string pemprikey, out string pempubkey)

catch (exception ex)

}#endregion

#region rsa加密

/// /// 使用xml格式加密

///

/// xml公鑰

/// 需要加密的字串

/// 返回加密後的字串

public static string xmlrsaencrypt(string xmlpubkey, string encryptstr)

catch (exception ex)

}/// /// 使用pem格式加密

///

/// pem公鑰

/// 需要加密的字串

/// 返回加密後的字串

public static string pemrsaencrypt(string pempubkey, string encryptstr)

catch

}#endregion

#region rsa解密

/// /// 使用xml格式解密

///

/// xml格式私鑰

/// 需要解密的字串

/// 返回解密後的字串

public static string xmlrsadecrypt(string xmlprikey, string decryptstr)

catch (exception ex)

}/// /// 使用pem格式解密

///

/// pem格式私鑰

/// 需要解密的字串

/// 返回解密後的字串

public static string pemrsadecrypt(string pemprikey, string decryptstr)

catch

}#endregion

#region rsa簽名

/// /// 使用xml格式的私鑰加簽

///

/// 需要加簽的字串

/// xml格式的私鑰

/// 返回簽名

public static string xmlsign(string str, string xmlprikey)

/// /// 使用pem格式的私鑰加簽

///

/// 需要加簽的字串

/// pem格式的私鑰

/// 返回簽名

public static string pemsign(string str, string pemprikey)

#endregion

#region rsa驗籤

/// /// 使用xml格式的公鑰驗籤

///

/// 需要驗籤的字串

/// 簽名

/// xml格式的公鑰

/// 是/否

public static bool xmlsigncheck(string str, string sign, string xmlpubkey)

return false;

}catch

}/// /// 使用xml格式的公鑰驗籤

///

/// 需要驗籤的字串

/// 簽名

/// pem格式的公鑰

/// 是/否

public static bool pemsigncheck(string str, string sign, string pempubkey)

return false;

}catch (exception ex)

}#endregion

#region xml轉pem

/// /// xml格式的公鑰轉pem格式的公鑰

///

/// xml格式的公鑰

/// pem格式的公鑰

public static string xmltopem_pub(string xmlpubkey)

/// /// xml格式的私鑰轉pem格式的私鑰

///

/// xml格式的私鑰

/// pem格式的私鑰

public static string xmltopem_pri(string xmlprikey)

/// /// 格式化公鑰/私鑰

///

/// 生成的公鑰/私鑰

/// true:公鑰 false:私鑰

/// pem格式的公鑰/私鑰

private static string format(string key, bool type)

result = result + key.substring(length * 64);

if (type)

else

return result;

}#endregion

#region pem轉xml

/// /// pem格式的金鑰轉xml格式

///

/// pem格式的金鑰

/// true:私鑰;false:公鑰

/// xml格式金鑰

public static string pemtoxml_all(string pemkey, bool isprikey)

else

string rsakey = string.empty;

object pemobject = null;

rsaparameters rsapara = new rsaparameters();

using (stringreader sreader = new stringreader(pemkey))

//rsa私鑰

if (isprikey);}

//rsa公鑰

else

rsacryptoserviceprovider rsa = new rsacryptoserviceprovider();

rsa.importparameters(rsapara);

using (stringwriter sw = new stringwriter())

return rsakey;

}#endregion

}}

XML格式示例 與 XML操作 讀取 類封裝

header content type text xml normal dr wondershare customize affiliate 143724583 0 1 11642 1 01 0 jump hide disable 1 01 0 封裝了下讀取xml操作類 xml操作基類 class ...

彙編與C互操作

彙編與c互操作 c語言內嵌彙編 c語言呼叫彙編過程 彙編呼叫c語言過程 1 開啟vs2008,建立乙個vc 空工程。2 在solution explorer上右擊工程名,選擇custom build rules 在彈出的對話方塊上勾選microsoft macro assembler。3 在solu...

簡單XML操作類

返回xml檔案指定元素的指定屬性值 指定元素 指定屬性 public static bool getxmlvalue string key,out string value value return false 設定xml檔案指定元素的指定屬性的值 指定元素 指定屬性 指定值 public stat...