要求在.Net端生成公钥私钥对。

然后在.Net端使用RSA公钥加密;在Linux端使用RSA私钥解密。

最初的尝试是:.Net端使用RSACryptoServiceProvider; linux端使用OpenSSL

搞了整整5个小时,有木有啊,有木有啊! .Net的RSA和OpenSSL对不上,有木有啊,有木有啊!

人都搞晕了就是对不上。最后解决方式换成了,.Net端使用 OpenSSL.NET.

.Net端代码

  1. string publicKeyFile = context.Server.MapPath("~/App_Data/public.pem");
  2. using( RSA rsa = RSA.FromPublicKey(BIO.File(publicKeyFile, "r")) )
  3. {
  4. buffer = rsa.PublicEncrypt( buffer, RSA.Padding.OAEP);
  5. encryptedKey = Convert.ToBase64String(buffer);
  6. }

Linux端代码

    1. BIO *b64, *bmem;
    2. // Base64解码
    3. unsigned char *buffer = (unsigned char *)malloc(length);
    4. memset(buffer, 0, length);
    5. b64 = BIO_new(BIO_f_base64());
    6. BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
    7. bmem = BIO_new_mem_buf(szKey, length);
    8. bmem = BIO_push(b64, bmem);
    9. int len = BIO_read(bmem, buffer, length);
    10. BIO_free_all(bmem);
    11. // 加载私钥
    12. BIO * key = NULL;
    13. RSA * r = NULL;
    14. key = BIO_new(BIO_s_file());
    15. BIO_read_filename(key,  "/val/XXX/private.pem" );
    16. r = PEM_read_bio_RSAPrivateKey(key, NULL, NULL, NULL);
    17. BIO_free_all(key);
    18. unsigned char * plainText = (unsigned char *)malloc(len);
    19. memset( plainText, 0, len);
    20. // 解密
    21. int ret = RSA_private_decrypt( RSA_size(r), buffer, plainText, r, RSA_PKCS1_OAEP_PADDING);
    22. RSA_free(r);
    23. free(plainText);
    24. free(buffer);

http://blog.csdn.net/wangjia184/article/details/6941242

OpenSSL RSA加解密 (.Net公钥加密/ Linux端私钥解密)的更多相关文章

  1. openssl - rsa加解密例程

    原文链接: http://www.cnblogs.com/cswuyg/p/3187462.html openssl是可以很方便加密解密的库,可以使用它来对需要在网络中传输的数据加密.可以使用非对称加 ...

  2. openssl rsa 加解密

    <h4>1.openssl进行rsa加密解密</h4>首先介绍下命令台下openssl工具的简单使用:生成一个密钥:<pre lang="c" esc ...

  3. PHP使用OPENSSL RSA加密解密数据

    加密数据有很多种方法,今天我们来看一下OPENSSL RSA的加密办法. 1.首先得安装php的openssl扩展 php -m | grep openssl 执行以上命令,确保已经安装了openss ...

  4. PHP RSA加解密示例(转)

    1.生成密钥和公钥 开始前需要准备openssl环境 linux 需要安装openssl工具包,传送门http://www.openssl.org/source/ window 下需要安装openss ...

  5. RSA加解密&RSA加验签详解

    RSA 加密算法是目前最有影响力的 公钥加密算法,并且被普遍认为是目前 最优秀的公钥方案 之一.RSA 是第一个能同时用于 加密 和 数字签名 的算法,它能够 抵抗 到目前为止已知的 所有密码攻击,已 ...

  6. Java前端Rsa公钥加密,后端Rsa私钥解密(目前还不支持中文加密解密,其他都行)

    Base64工具类,可以让rsa编码的乱码变成一串字符序列 package com.utils; import java.io.ByteArrayInputStream; import java.io ...

  7. RSA不对称加密,公钥加密私钥解密,私钥加密公钥解密

    RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作. RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一 ...

  8. Java前端Rsa公钥加密,后端Rsa私钥解密(支持字符和中文)

    Base64工具类,可以让rsa编码的乱码变成一串字符序列 package com.utils; import java.io.ByteArrayInputStream; import java.io ...

  9. sslopen RSA加解密

    一.  原理概念 OpenSSL定义: OpenSSL是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法.常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其 ...

随机推荐

  1. SpringMVC上传图片总结(1)---常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest

    原文地址:https://blog.csdn.net/chenchunlin526/article/details/70945877 SpringMVC上传图片总结(1)---常规方法进行图片上传,使 ...

  2. 机器学习01-kNN邻近算法

    k-近邻算法 概述:k-近邻算法採用測量不同特征值之间的距离方法进行分类 长处:精度高.对于异常值不敏感.无数据输入假定 缺点:计算复杂度高,空间复杂度高,而且它没有办法各处基础数据的一些内部信息数据 ...

  3. [Node.js] Pass command line arguments to node.js

    Command line arguments are often used to modify the behavior of an application or specify needed par ...

  4. ios开发事件处理之 :二:事件的产生与传递

    1.事件是怎么样产生与传递的? 当发生一个触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中.(队列是先进先出,而栈是先进后出) UIApplication会从事件队列中 ...

  5. mount新磁盘

    fdisk -l  mkfs.xfs /dev/xvdb  mkdir /data mount /dev/xvdb /data df -h vi /etc/fstab /dev/xvdb /data ...

  6. Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)

    Cocos2d-x 3.2 Lua演示样例FontTest(字体測试) 本篇博客介绍Cocos2d-x 3.2中Lua測试项目中的FontTest样例,主要使用了字体文件来创建我们想要的字体样式: 第 ...

  7. 课堂随笔03--for循环及两个循环中断关键字

    for (int i = 1; i <= 8;i++) {}  for循环可嵌套,执行指定次数,可用作计数. 用两个for循环嵌套,可以方便控制行列的输出. break:中断循环 continu ...

  8. Eclipse使用异常——tomcat启动

    Eclipse使用异常--tomcat启动 一:问题描写叙述 Eclipse刚上手.非常多地方与Myeclipse不一样的地方.比方tomcat的使用.真心的蛋疼. 环境:JDK7.TOMCAT7.E ...

  9. erlang 中带下划线变量的使用

    在erlang里'_'是一个特殊的变量(其实erlang里不应该叫“变”量,照顾习惯,姑且这么叫吧),它可以代替任何东西,在match的时候非常有用,例如: {A, _, [B|_], {B}} =  ...

  10. 与Boss大雷探讨JavaWeb开发、电商与网络安全

    最近几个月,与公司Boss大雷交流得比较多,也学习到了很多新的东西,了解到了一些没有接触和实践的业界做法. 简要介绍下Boss,姓雷,定居武汉好几年了,之前在一号店.UC.支付宝干过,有丰富的电商-支 ...