摘要: 最近时间在整SM2算法,在网上看到不少代码,基本都是使用BouncyCastle库,现在这个版本算比较好的拿来分享给大家。 首先引入包 Portable.BouncyCastle 完整代码见Gitee:https://gitee.com/Karl_Albright/CryptoHelper/blob 阅读全文
posted @ 2021-08-21 19:00 Karl_Albright 阅读(8165) 评论(4) 推荐(5) 编辑
摘要: 前阵子在对接银行接口,对方给出的加密方式是SM2,在网上找了不少教程,都是使用Portable.BouncyCastle实现的,功能实现后发现对方给出的密钥格式是PKCS8,下面代码记录一下PKCS8密钥如何使用 各种常用的加密方法例子总结 https://gitee.com/xuzhongye/C 阅读全文
posted @ 2021-08-15 15:52 Karl_Albright 阅读(1107) 评论(0) 推荐(1) 编辑
摘要: 怎么使用模块1. 建立模块直接的依赖关系,可以通过DependsOnAttribute特性来确定依赖关系2. 先配置模块,实现为模块填充数据和功能设置。3. 使用模块提供的功能接口 怎么定义模块1. 每个模块都应该定义一个模块类并继承AbpModule抽象了类2. 通过DependsOnAttrib 阅读全文
posted @ 2021-06-07 08:57 Karl_Albright 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 1. 线程池基础。 创建和销毁线程是一个昂贵的操作,要耗费大量时间。太多的线程会浪费内存资源。由于操作系统必须调度可运行的线程并执行上下文切换,所以大多的线程还对性能不利。为了改善这个情况,CLR包含了代码来管理它自己的线程池(thread pool)。线程池是你的应用程序能使用的线程集合。每CLR 阅读全文
posted @ 2021-06-07 01:16 Karl_Albright 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 1. Microsoft 设计这个OS内核时,决定在一个进程中运行应用程序的每个实例。进程实际是应用程序的实例要使用的资源的集合。每个进程都被赋予了一个虚拟地址空间,确保在一个进程中使用的代码和数据无法由另一个进程访问。 2. 如果发生死循环会停止响应,所以有了线程,线程的职责是对CPU进行虚拟化。 阅读全文
posted @ 2021-06-06 11:25 Karl_Albright 阅读(61) 评论(0) 推荐(0) 编辑
摘要: Redis 中的数据类型 Redis 中,常用的数据类型有以下几种: String 字符串 Hash 散列/哈希 List 列表 Set 集合 Sorted Set 有序集合 所有数据都是 key-value 形式存储,每个数据都有唯一的 key,以上数据类型是 value。 删除一个数据的命令:D 阅读全文
posted @ 2021-06-04 15:25 Karl_Albright 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 在开发中,有时候生成验证码的场景目前还是存在的,本篇演示不依赖第三方组件,生成随机验证码图片。 先添加验证码接口 public interface ICaptcha { /// <summary> /// 生成随机验证码 /// </summary> /// <param name="codeLen 阅读全文
posted @ 2021-06-03 22:01 Karl_Albright 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 1. 异常是指成员没有完成它的名称所宣称的行动,异常类继承System.Exception。 2. .Net Framework 异常处理机制是用Microsoft windows提供的结构化异常处理(Structured Exception Handing, SEH)机制构建的。 3. AppDo 阅读全文
posted @ 2021-06-03 19:58 Karl_Albright 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 1. 访问一个资源所需的步骤 1). 调用IL指令newobj,为代表资源的类型分配内存(一般使用C# new 操作符来完成)。 2). 初始化内存,设置资源的初始状态并使资源可用。类型的实例构造器负责设置初始状态。 3). 访问类型的成员来使用资源(有必要可以重复)。 4). 摧毁资源的状态以进行 阅读全文
posted @ 2021-06-03 19:57 Karl_Albright 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 1. 字符串一经创建,便不能以任何方式修改,只能修改引用。 2. ToLowerInvariant() 和 ToUpperInvariant() 以忽略语言文化的方式将字符串转换为小写或大写形式。性能比ToLower() 和 ToUpper()好。而且Microsoft对执行大写比较的代码进行了优化 阅读全文
posted @ 2021-06-02 19:14 Karl_Albright 阅读(40) 评论(0) 推荐(0) 编辑