| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 网络协议 -> RSA加密 之c# -> 正文阅读 |
|
|
[网络协议]RSA加密 之c# |
|
C#在using System.Security.Cryptography下有 DESCryptoServiceProvider RSACryptoServiceProvider? 1.rsa /// <summary>
/// 获取加密所使用的key,RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
/// </summary>
public static void GetKey(ref string PublicKey ,fer stringPrivateKey )
{
string PublicKey = string.Empty;
string PrivateKey = string.Empty;
RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider();
PublicKey = rSACryptoServiceProvider.ToXmlString(false); // 获取公钥,用于加密
PrivateKey = rSACryptoServiceProvider.ToXmlString(true); // 私匙,
用于解密
} ?/// <summary> ? ? ? ? ? ? return Convert.ToBase64String(cipherbytes); ?/// <summary> ? ? ? ? ? ? return Encoding.UTF8.GetString(cipherbytes); 2.DES /// <summary>
/// DES加密/解密
/// </summary>
/// <param name="data">加密/解密数据</param>
/// <param name="key">秘钥</param>
/// <param name="keyIV">向量</param>
/// <param name="isEncrypt">true加密,false解密</param>
/// <returns></returns>
public static byte[] EncryptOrDecrypt(byte[] data, byte[] key, byte[] keyIV, bool isEncrypt)
{
DESCryptoServiceProvider desP = new DESCryptoServiceProvider();
if (isEncrypt)// 加密
{
desP.Key = key;
desP.IV = keyIV;
ICryptoTransform desencrypt = desP.CreateEncryptor(key, keyIV);
byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return result;
}
else // 解密
{
desP.Key = key;
desP.IV = keyIV;
ICryptoTransform desencrypt = desP.CreateDecryptor(key, keyIV);
byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return result;
}
}
/// <summary>
/// 创建随机秘钥
/// </summary>
/// <returns></returns>
public static byte[] CreateKey()
{
DESCryptoServiceProvider desP = new DESCryptoServiceProvider();
desP.GenerateKey();
return desP.Key;
}
/// <summary>
/// 创建随机向量
/// </summary>
/// <returns></returns>
public static byte[] CreateIV()
{
DESCryptoServiceProvider desP = new DESCryptoServiceProvider();
desP.GenerateIV();
return desP.IV;
}
注:自己做的项目时? 是自己创建自己的 公钥和私钥? ? ?当对接别人项目时? 或许别人给你的是PEM文件? ?格式? ? ? -----BEGIN PUBLIC KEY-----? ? ?公钥的 需要提取其中的公钥 /// <summary> ?? ??? ??? ?var base64 = _PEMCode.Replace(pem, ""); ?? ??? ??? ?//读取长度
?? ??? ??? ??? ?//检测PKCS8 ?? ??? ??? ??? ?//Modulus ?? ??? ??? ??? ?//Exponent ?? ??? ??? ??? ?//读取版本号 ?? ??? ??? ??? ?//检测PKCS8 ?? ??? ??? ??? ??? ?//读取版本号 ?? ??? ??? ??? ?//读取数据 ?? ??? ??? ?return param; |
|
|
| 网络协议 最新文章 |
| 使用Easyswoole 搭建简单的Websoket服务 |
| 常见的数据通信方式有哪些? |
| Openssl 1024bit RSA算法---公私钥获取和处 |
| HTTPS协议的密钥交换流程 |
| 《小白WEB安全入门》03. 漏洞篇 |
| HttpRunner4.x 安装与使用 |
| 2021-07-04 |
| 手写RPC学习笔记 |
| K8S高可用版本部署 |
| mySQL计算IP地址范围 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/29 7:07:08- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |