
加密解密
文章平均质量分 78
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
HMAC应用场景
HMAC 是一种灵活而强大的消息认证机制,应用范围涵盖从 API 保护到身份验证和数据完整性验证等领域。由于它易于实现且计算效率高,是很多现代安全方案中的重要组成部分。原创 2024-11-12 13:30:17 · 589 阅读 · 0 评论 -
HOTP和TOTP算法图解
对于 HOTP,通过上图我们已经看到输入算法的主要有两个元素,一个是共享密钥,另外一个是计数。在 RFC 算法中用一下字母表示:K 共享密钥,这个密钥的要求是每个 HOTP 的生成器都必须是唯一的。一般我们都是通过一些随机生成种子的库来实现。C 计数器,RFC 中把它称为移动元素()是一个8个byte的数值,而且需要服务器和客户端同步。另外一个参数比较好理解,Digit表示产生的验证码的位数最后两个参数可能暂时不好理解,我们先放在这,等用到在解释T称为限制参数()表示当用户尝试T次OTP。转载 2024-08-02 00:11:00 · 330 阅读 · 0 评论 -
rsa公钥和私钥到底哪个才是用来加密,哪个用来解密?
公钥和私钥在一些银行系统、第三方支付系统SDK中经常会遇到,刚接触公钥私钥的朋友们估计很难区分两者的区别。转载 2024-07-19 23:17:22 · 1056 阅读 · 0 评论 -
使用加密算法加密数据时,得到通常是二进制数据(字节数组),ToHex16和ToBase64的区别
当我们使用加密算法加密数据时,得到的结果通常是二进制数据(字节数组)。这种二进制数据在存储、传输或展示时,并不总是方便处理或直观可读的。为了解决这个问题,我们可以将这些二进制数据转换成其他格式,以便于处理和展示。加密结果可能包含一些无法用普通字符串表示的字符,例如控制字符或非打印字符。这些字符可能会导致在存储或传输过程中出现问题。加密结果是二进制数据,转换为普通字符串后可能会导致一些字节丢失或不可恢复的数据损失。这可能会影响解密的结果,导致无法正确还原原始数据。原创 2024-05-18 00:22:49 · 742 阅读 · 0 评论 -
javax.crypto.Cipher 类实现了加密和解密的算法
在密码学中,(中文翻译为"密码器")指的是一种算法或系统,用于对数据进行加密和解密。它接受称为明文的原始数据作为输入,并通过使用密钥对其进行转换,生成称为密文的加密数据。密文只有通过正确的密钥才能被解密还原成原始的明文数据。在 Java 中,类实现了加密和解密的算法。这个类提供了加密和解密的功能,可以用于保护数据的安全性。对称加密算法(如 DES、AES)和非对称加密算法(如 RSA)都可以通过Cipher类来实现。原创 2024-03-18 21:02:25 · 1778 阅读 · 0 评论 -
PEM (Privacy Enhanced Mail) 和 PFX (Personal Information Exchange)异同
PEM (Privacy Enhanced Mail) 和 PFX (Personal Information Exchange) 都是用于存储和传输安全相关信息的格式,通常用于数字证书和私钥的管理。它们之间的主要区别在于其格式和用途。因此,PEM 和 PFX 的主要区别在于它们的格式和用途。PEM 是一种基于文本的编码格式,通常用于存储和传输X.509数字证书和相关的密钥,而PFX 是一种二进制格式,用于打包证书、私钥和密码以便于导入到密钥库中。选择使用哪种格式取决于您的具体需求和应用场景。原创 2023-09-24 19:47:14 · 1692 阅读 · 1 评论 -
OpenSSL 有哪些功能
OpenSSL 是一个开源的加密库,它提供了多种加密算法和安全功能,用于保护数据通信和信息存储。需要注意的是,OpenSSL 是一个功能强大且广泛使用的工具,但也需要小心使用,以确保正确配置和更新,以便保持安全性。随着时间的推移,一些加密算法和协议可能会出现弱点,因此及时更新 OpenSSL 版本以获得最新的安全修复很重要。原创 2023-09-24 19:35:26 · 1233 阅读 · 0 评论 -
X509证书的作用有哪些?
X.509证书是一种用于公钥基础设施(PKI)的标准化数字证书格式,它在网络通信和信息安全领域起着关键作用。总之,X.509证书在保护信息安全、建立信任和实现安全通信方面具有广泛的应用,它们是PKI体系结构的核心组成部分。证书的有效性和安全性取决于证书颁发机构的可信度和实施细节。原创 2023-09-24 19:23:51 · 791 阅读 · 0 评论 -
ECDSA 和ECC 什么关系
ECDSA(Elliptic Curve Digital Signature Algorithm)是一种使用椭圆曲线密码学(ECC,Elliptic Curve Cryptography)作为基础数学结构的数字签名算法。因此,ECDSA和ECC之间存在密切的关系,但它们是不同的概念。因此,ECDSA是一种构建在ECC之上的具体应用,它使用椭圆曲线来实现数字签名。ECC本身是更广泛的密码学领域中的一种技术,可以用于多种目的,包括加密、数字签名和密钥交换等。ECDSA是其中之一,专门用于数字签名。原创 2023-09-24 18:29:56 · 2102 阅读 · 0 评论 -
在.NET Core 中导入和导出 RSA 密钥格式
其中许多是另一个 API 略有不同的变体,但它们对于处理来自其他使用编码密钥的系统的私钥和公钥非常有用。RSA 密钥可以采用多种不同的方式进行编码,具体取决于密钥是公开的还是私有的,还是受密码保护。不同的程序将以不同的格式导入或导出 RSA 密钥等。所有这些 API 也都有自己的导出版本,因此如果您尝试将 .NET Core 3 中的密钥导出为特定格式,则需要使用正确的导出 API。”编码,但这对于密钥的实际编码方式已经是模棱两可了。的一个问题是注意密钥格式的输出。之外的其他类型的密钥。转载 2022-09-22 12:29:10 · 1440 阅读 · 0 评论 -
UTF-8知识
UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部份修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。发展历程在所有字符集中,最知名的可能要数被称为ASCII的8位字符集了。它是美国标准信息交换代码(转载 2020-08-25 09:35:00 · 1414 阅读 · 0 评论 -
GBK 编码
GBK编码范围:8140-FEFE,汉字编码范围见第二节:码位分配及顺序。GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK编码方案于1995年12月转载 2020-08-24 14:48:40 · 66038 阅读 · 1 评论 -
TLS/SSL 协议详解 (28) TLS 1.0、TLS 1.1、TLS 1.2之间的区别
TLS 1.0 RFC http://www.ietf.org/rfc/rfc2246.txtTLS 1.1 RFC http://www.ietf.org/rfc/rfc4346.txtTLS 1.2 RFC http://www.ietf.org/rfc/rfc5246.txtTLS 1.3 见:https://blog.youkuaiyun.com/mrpre/article/details/81...转载 2019-11-11 22:47:26 · 6543 阅读 · 0 评论 -
FTPS简介
FTPS是一种对常用的文件传输协议(FTP)添加传输层安全(TLS)和安全套接层(SSL)加密协议支持的扩展协议。FTPS不应与基于SSH的SSH文件传输协议或是Secure FTP协议相混淆。简介FTPS是一种对常用的文件传输协议(FTP)添加传输层安全(TLS)和安全套接层(SSL)加密协议支持的扩展协议。FTPS不应与基于SSH的SSH文件传输协议或是Secure FTP协议相混淆。...转载 2019-11-09 10:07:38 · 1541 阅读 · 1 评论 -
FTP、FTPS和SFTP
FTP一、两种传输方式ASCII传输方式假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷...转载 2019-11-09 09:50:27 · 858 阅读 · 0 评论 -
OpenSSL命令详解
OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理 这里使用的是Win32OpenSSL_Light-1_0_1e.exe http://www.slproweb.com/products/Win32OpenSSL.html1,构建根证书构建根证书前,需要构建随机数文件(.rand),完整命令如openssl rand -out private/.rand 1000转载 2017-08-24 10:26:27 · 1045 阅读 · 0 评论 -
.NET生成RSA公钥和私钥-加密解密示例
我们每一个人的一生中都会难免有缺憾和不如意,也许我们无力改变这个事实,而我们可以改变的只是看待这些事情的态度。用平和的态度去对待生活中的缺憾和苦难。Form1.cs代码: public partial class Form1 : Form { private const int RsaKeySize = 2048; private const string原创 2016-10-19 22:35:37 · 13122 阅读 · 0 评论 -
SSL证书与Https应用部署小结
为了提高网站的安全性,一般会在比较敏感的部分页面采用https传输,比如注册、登录、控制台等。像Gmail、网银等全部采用https传输。https/ssl 主要起到两个作用:网站认证、内容加密传输和数据一致性。经CA签发的证书才起到认证可信的作用,所有有效证书均可以起到加密传输的作用。浏览器与SSL证书SSL应用部署小结 - hanguokai - 韩国恺的博客上图是IE和Chrome上...转载 2019-05-28 21:41:02 · 651 阅读 · 0 评论 -
OpenSSL:证书格式的相互转换, 例如.pem .crt .cer .pfx
PEM格式PEM格式是证书颁发机构颁发证书的最常见格式.PEM证书通常具有扩展名,例如.pem,.crt,.cer和.key。它们是Base64编码的ASCII文件,包含“----- BEGIN CERTIFICATE -----”和“----- END CERTIFICATE -----”语句。服务器证书,中间证书和私钥都可以放入PEM格式。Apache和其他类似服务器使用PEM格式证书。几...转载 2019-05-26 20:52:37 · 5633 阅读 · 0 评论 -
哈希计算器
Form1.cs代码:using System;using System.ComponentModel;using System.IO;using System.Security.Cryptography;using System.Windows.Forms;namespace HashDemo{ public partial class Form1 : Form {原创 2017-06-29 10:45:48 · 2416 阅读 · 0 评论 -
Bouncy Castle使用(一)【开始】
保持Bouncy Castle项目进行随着各种算法的更改,更新,协议中的安全问题,以及不得不为诸如CERT等组织编写供应商声明,保持Bouncy Castle项目的进行正在变成一个全职工作,我们中的几个人现在已经放弃了稳定的工作,以释放上班时间。如果您正在使用我们的软件,并且有兴趣确保在需要我们时总是在这里,有两种主要的方式可以帮助您。第一个是通过获得支持合同或通过赞助项目的具体工作。不仅转载 2017-06-05 11:49:40 · 11361 阅读 · 0 评论 -
从自签名证书导出pfx和cer证书
完整代码:public sealed class DataCertificate { #region 生成证书 /// <summary> /// 根据指定的证书名和makecert全路径生成证书(包含公钥和私钥,并保存在MY存储区) /// </summary> /// <param name转载 2017-02-11 19:47:18 · 3052 阅读 · 0 评论 -
C#数字证书编程总结
.NET中如何操作数字证书详解.NET为我们提供了操作数字证书的两个主要的类,分为为: System.Security.Cryptography.X509Certificates.X509Certificate2类, 每个这个类的实例可以表示一个证书; System.Security.Cryptography.X509Certificates.X509Store类,可以对保存在计算机安全区域内的转载 2017-02-11 19:40:12 · 7185 阅读 · 0 评论 -
.NET使用RSA加密解密
知耻近乎勇。——孔丘PassWordHelper.cs代码:using System;using System.IO;using System.Text;using System.Globalization;using System.Collections.Generic;using System.Security.Cryptography;namespace Utils{ //原创 2016-12-24 10:13:15 · 6572 阅读 · 1 评论 -
.NET使用PFX文件签名XML文档
一个人如果下决心要成为什么样的人,或者下决心要做成什么样的事,那么,意志或者说动机的驱动力会使他心想事成,如愿以偿。Program.cs代码:class Program { static void Main(string[] args) { #region 1 - 加载XML文档 var xmlDoc = new原创 2016-10-20 22:11:35 · 9425 阅读 · 0 评论 -
.NET pfx文件解析私钥和公钥
最近和某行对接,发现私钥和公钥以pfx文件形式传给我们,需要我们自己进行读取,当时头就有点儿大先说一下pfx证书与cer证书的区别PFX证书:由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。CER证书:证书中没有私钥,DER 编码二进制格式的证书文件/BASE64 编码格式的证书转载 2016-10-19 22:39:35 · 6034 阅读 · 0 评论 -
.NET RSACryptoServiceProvider【创建公共/私有密钥对】
作为瞬间,它当然是短暂的……然而,它却是决定性的,是充满永恒的。Program.cs代码: class Program { static void Main(string[] args) { var key = KeyPair.CreateNew(512); Console.WriteLine(key.Publ原创 2016-10-18 23:38:43 · 8271 阅读 · 0 评论 -
Aes使用Java加密C#解密
项目开发过程中遇到一个棘手的问题:A系统使用java开发,通过AES加密数据,B系统使用C#开发,需要从A系统获取数据,但在AES解密的时候遇到麻烦。Java的代码和C#的代码无法互通。Java代码: /** *加密 * *@paramcontent需要加密的内容 *@parampassword加密密钥 *@return */ public转载 2016-10-17 10:21:37 · 2977 阅读 · 0 评论 -
X509从证书验证和创建Base64字符串
我手中的灯笼 使眼前黑暗的路途与我为敌Program.cs代码: class Program { static void Main(string[] args) { Console.WriteLine("X509证书实用程序"); Console.WriteLine("----------------------原创 2016-10-25 23:27:53 · 4472 阅读 · 0 评论 -
对称加密算法知识
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;应用模式加转载 2016-10-23 00:35:13 · 994 阅读 · 1 评论 -
密钥相关文件格式
密钥库文件格式【Keystore】格式 : JKS 扩展名 : .jks/.ks 描述 : 【Java Keystore】密钥库的Java实现版本,provider为SUN 特点 : 密钥库和私钥用不同的密码进行保护格式 : JCEKS 扩展名 : .jce 描述 : 【JCE Keystore】密钥库的JCE实现版本,prov转载 2016-10-22 00:44:22 · 3001 阅读 · 0 评论 -
RSA密钥之C#格式与Java格式转换
前言 最近由于项目需求,服务端由c#编写,客户端由java编写。通信数据使用RSA非对称加密。但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用。网上搜到使用java进行格式转换的代码(如:http://blog.youkuaiyun.com/road2010/article/details/40071881 ),本文将给出一种c#的实现方法。密钥格式java密钥格式如下:私钥:MII转载 2016-10-22 00:52:45 · 1207 阅读 · 0 评论 -
常见证书格式和转换
PKCSPKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准。What is PKCS? http://www.rsa.com/rsalabs/node.asp?id=2308PKCS 目前共发布过 15 个标准: (1)PKCS#1:RSA加密标准。PKCS#1定义了RSA公钥函数的转载 2016-10-22 00:47:55 · 1214 阅读 · 0 评论 -
RSA的密钥把JAVA格式转换成C#的格式(二)
我已经在第一篇介绍过如何把C#格式转换成Java,现在来看看如何把Java格式转换成C#。/// <summary> /// RSA加密 /// </summary> /// <param name="publickey"></param> /// <param name="content"></param> /// <转载 2016-10-22 00:33:57 · 3152 阅读 · 0 评论 -
MD5和Base64
一. 简述MD5: 全称为message digest algorithm 5(信息摘要算法), 可以进行加密, 但是不能解密, 属于单向加密, 通常用于文件校验Base64: 把任意序列的8位字节描述为一种不易为人识别的形式, 通常用于邮件、http加密. 登陆的用户名和密码字段通过它加密, 可以进行加密和解密.MD5与Base64的思考MD5加密是对任意长的数据使用MD5哈稀算法散列为4个32位转载 2017-06-21 14:10:36 · 6304 阅读 · 0 评论 -
那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)
之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂.写这篇文章的目的就是为了理理清这些概念,搞清楚它们的含义及关联,还有一些基本操作.SSLSSL - Secure Sockets Layer,现在应该叫”TLS”,但由于习惯问题,我们还是叫”SSL”转载 2017-06-21 13:34:16 · 989 阅读 · 0 评论 -
AES128和AES256主要区别和安全程度是多少
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2转载 2017-07-01 11:54:48 · 32182 阅读 · 1 评论 -
JAVA/PHP/C#版RSA验签
下面重点分析如何基于RSA的PEM文件,使用php和c#进行验签。1、php验签复制代码 function verify(data,data,data, sign, $rsaPublicKeyFilePath) {//读取公钥文件$pubKey = file_get_contents($rsaPublicKeyFilePath);//转换为openssl格式密钥...转载 2018-09-05 21:55:24 · 532 阅读 · 0 评论 -
C#通过java生成的RSA公钥加密和解密
最近工作需要将对方公司生成的RSA加密公钥进行明文加密和解密,发现了几点贴出来做个笔记。RSA单次加密是有长度限制!微软封装的加密方法如果出现长度超出指定范围的话报错是直接报“该项不适于在指定状态下使用”…如需加密只能分段加密!直接将现在使用的封装类贴出来吧。新建一个类,里面有很多扩展函数复制代码 using System; using System.Collections...转载 2018-09-04 22:57:44 · 1523 阅读 · 0 评论 -
java/php/c#版rsa签名以及java验签实现
在开放平台领域,需要给isv提供sdk,签名是Sdk中需要提供的功能之一。由于isv使用的开发语言不是单一的,因此sdk需要提供多种语言的版本。譬如java、php、c#。另外,在电子商务尤其是支付领域,对安全性的要求比较高,所以会采用非对称密钥RSA 本文主要介绍如何基于java、php、c#在客户端使用rsa签名,然后在服务端使用Java验签。基于openssl生成RSA公私钥对...转载 2018-09-04 22:53:04 · 963 阅读 · 0 评论