当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 此Demo包含两个文件,建立一个解决方案,然后建立两个文件,一个
 

 

 ·[asp.net(c#)]xml操作类(一)    »显示摘要«
    摘要: public class xmlcontrol { protected string strxmlfile; protected xmldocument objxmldoc = new xmldocument(); public xmlcontrol(string xmlfile) { // // todo: 在這裡加入建構函式的程式碼 // try { objxmldoc.load(xml......
    摘要:中国linux公社 校园联络员第四次全体大会 会议记录 (2004-03-20) (情况汇报、统一行动、轮值主席、接班人、同城高校联合推广) -------------------------------------------------------------------------------- [19:57]<fujinsan>好了,开始开会吧。 ......


RSA加密解密及RSA签名和验证

此demo包含两个文件,建立一个解决方案,然后建立两个文件,一个为form,一个为class,把代码分别复制进去即可

【程序编程相关:JDBC接口技术

【推荐阅读:对话框到子控件的切换

rsa正确的执行过程: 【扩展信息:rpc的新架构

加密解密:

1.获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥

2.加密

3.解密

签名与验证:

签名:

1.获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥

2.获取待签名的hash码

3.签名

其中,1与2的步骤无所谓,在本例中,我们将对txtsource里的内容进行签名,也可以对文件进行签名

验证签名:

1.获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥

2.获取待验证签名的hash码

3.获取签名的字串,这里签名的字串存储在m_strencryptedsignaturedata变量中,在demo中必须通过签名才能获得这个字串,因此需要先执行签名,当然也可以更改之后通过别的方式获得

4.验证

其中,1与2的步骤无所谓,在本例中,我们将对txtsource里的内容进行签名验证,也可以对文件进行签名验证

 如果是文件,取得文件之后把文件的内容以byte[]的方式代入即可

///////////////////////////////////////////////////////////////////////////////////////////////////////////

//rsacryption.cs

///////////////////////////////////////////////////////////////////////////////////////////////////////////

using system;

using system.text;

using system.security.cryptography;

namespace rsaapplication

{

 /// <summary>

 /// rsacryption 的摘要说明.

 /// </summary>

 public class rsacryption

 {

  #region 构造函数

  public rsacryption()

  {

   //

   // todo: 在此处添加构造函数逻辑

   //

  }

  #endregion

  

  #region rsa 加密解密

  #region rsa 的密钥产生

  //rsa 的密钥产生

  //产生私钥 与公钥

  public void rsakey(out string xmlkeys,out string  xmlpublickey)

  {

   try

   {

    system.security.cryptography.rsacryptoserviceprovider rsa=new rsacryptoserviceprovider();

    xmlkeys=rsa.toxmlstring(true);

    xmlpublickey = rsa.toxmlstring(false);

   }

   catch(exception ex)

   {

    throw ex;

   }

  }

  #endregion

  #region rsa的加密函数

  //##############################################################################

  //rsa  方式加密

  //说明key必须是xml的行式,返回的是字符串

  //在有一点需要说明!!该加密方式有 长度 限制的!! 

  //##############################################################################

  //rsa的加密函数

  public string rsaencrypt(string xmlpublickey,string m_strencryptstring )

  {

   try

   {

    byte[] plaintextbarray;

    byte[] cyphertextbarray;

    string result;

    system.security.cryptography.rsacryptoserviceprovider rsa=new rsacryptoserviceprovider();

    rsa.fromxmlstring(xmlpublickey);

    plaintextbarray = (new unicodeencoding()).getbytes(m_strencryptstring);

    cyphertextbarray = rsa.encrypt(plaintextbarray, false);

    result=convert.tobase64string(cyphertextbarray);

    return  result;

   }

   catch(exception ex)

   {

    throw ex;

   }

  }

  //rsa的加密函数

  public string rsaencrypt(string xmlpublickey,byte[] encryptstring )

  {

   try

   {

    byte[] cyphertextbarray;

    string result;

    system.security.cryptography.rsacryptoserviceprovider rsa=new rsacryptoserviceprovider();

    rsa.fromxmlstring(xmlpublickey);

    cyphertextbarray = rsa.encrypt(encryptstring, false);

    result=convert.tobase64string(cyphertextbarray);

    return  result;

   }

   catch(exception ex)

   {

    throw ex;

   }

  }

  #endregion

  #region rsa的解密函数

  //rsa的解密函数

  public string  rsadecrypt(string xmlprivatekey, string m_strdecryptstring )

  {

   try

   {

    byte[] plaintextbarray;

    byte[] dyphertextbarray;

    string result;

    system.security.cryptography.rsacryptoserviceprovider rsa=new rsacryptoserviceprovider();

    rsa.fromxmlstring(xmlprivatekey);

    plaintextbarray =convert.frombase64string(m_strdecryptstring);

    dyphertextbarray=rsa.decrypt(plaintextbarray, false);

    result=(new unicodeencoding()).getstring(dyphertextbarray);

    return result;


...   下一页
 ·让一个窗口默默地启动(vc)    »显示摘要«
    摘要:setwindowlong(application.handle,sw_hide);//这个让程序不显示在任务栏里你可以让程序在show的时候不让它显示出来 ---- 任务栏状态区的图标添加、删除、以及修改是通过windows api函数shell_notifyicon来实现的,该函数是由windows的shell32.dll动态联接库提供的。在delphi中,shell_notifyicon......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE