TSL语言基础 > Object TSL > TSL内置对象使用大全 > TRSA

TRSA使用说明以及范例    

  •   在使用加密和解密方法前必须确保TRsa对象中已经正确地设置了密钥。
    GenerateKey方法会生成一对新的密钥,而给PublicKey和PrivateKey赋值可以分别载入一个已经存在的公钥和私钥,要注意的是给PublicKey和PrivateKey中的任何一个赋值,系统都会先将公钥和私钥同时重置,然后再分别设置公钥和私钥。
      公钥和私钥都以PKCS#1格式编码。
      被加密的数据长度通常不能超过密钥字节数-11,否则函数将执行失败。例如使用1024位密钥,即128字节,那么被加密数据不能超过117个字节。加密后的密文数据长度和密钥字节数相同。
    示例:
    下述代码展示了两种加密解密过程:
      1.文本内容->公钥加密->私钥对加密内容解密
      2.文本内容->私钥加密->公钥对加密内容解密
    filename := 'd:\\a.txt';
    size := filesize("",filename);
    ReadFile(rwraw(),"",filename,0,size,file_str);//读取文本内容
    rsa_obj := CreateObject('TRsa');
    rsa_obj.GenerateKey(1024);
    rsa_pubkey := rsa_obj.PublicKey;//公钥
    rsa_prikey := rsa_obj.PrivateKey;//私钥
    rsa_obj_1 := CreateObject('TRsa');
    rsa_obj_1.PublicKey := rsa_pubkey;
    rsa_pub_enc := rsa_obj_1.PubEncrypt(file_str);//使用公钥加密文本内容
    rsa_obj_1.PrivateKey := rsa_prikey;
    rsa_pri_dec := rsa_obj_1.PriDecrypt(rsa_pub_enc);//使用私钥解密
    rsa_pri_enc := rsa_obj_1.PriEncrypt(file_str);//使用私钥加密文本内容
    rsa_obj_1.PublicKey := rsa_pubkey;
    rsa_pub_dec := rsa_obj_1.PubDecrypt(rsa_pri_enc);//使用公钥解密
    return array(
      '文本内容':file_str,
      'RSA私钥':rsa_prikey,
      'RSA公钥':rsa_pubkey,
      'RSA公钥加密':EncodeRadixStr(rsa_pub_enc,'',16),
      'RSA私钥解密':rsa_pri_dec,
      'RSA私钥加密':EncodeRadixStr(rsa_pri_enc,'',16),
      'RSA公钥解密':rsa_pub_dec
    );