SHA1withRSA加簽名和驗簽名


利用私鑰加簽名:

//contentForSign為需加標簽的字符串

public String signWhithsha1withrsa(string contentForSign)

{

string result="";

try

{

RSACryptoServiceProvider    tMerchantKey=GetPrivateKey();//獲取私鑰

SHA1Managed tHash=new SHA1Managed();

//將傳遞需要加簽的字符串進行base64操作

byte[] base64=Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes(contentForSign)));

byte[] tHashedData=tHash.ComputeHash(base64);

//對其進行加簽名

byte[] tSigned=tMerchantKey.SignHash(tHashedData,"SHA1");

result=Convert.ToBase64String(tSigned);

return result;

}

catch(Exception e)

{

logger.Info("加簽失敗!",e);

}}

 

//讀取cer並驗證公鑰簽名

//requestBody為json報文數據

//signature為加簽標識

public bool read_cer_and_verify_sign(string requestBody,string signature)

{

bool result=false;

try

{

byte[] orgin=Encoding.UTF8.GetBytes((requestBody));//json報文數據獲得字節數據

byte[] singedBase64=Convert.FromBase64String((signature));

//讀取證書

RSACryptoServiceProvider tMerchantKey=GetPublicKey();//獲取公鑰

result=tMerchantKey.VerifyData(orgin,"SHA1",singedBase64);

return result;

}

catch(Exception e)

{

logger.Info("驗簽失敗!",e);

}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM