JNPF 数据加密

发布时间:2026/7/23 14:50:38

JNPF 数据加密
数据加密一、核心功能数据加密是 JNPF 框架提供的统一加密系统支持多种加密算法包括对称加密和非对称加密。1.1 核心价值多种加密算法支持 AES、DES、RSA、SHA、MD5、PBKDF2 等多种加密算法统一接口提供统一的加密接口切换加密算法无需修改业务代码扩展方法提供字符串扩展方法简化加密调用安全可靠实现业界标准的加密算法确保数据安全二、加密算法2.1 对称加密对称加密使用相同的密钥进行加密和解密算法说明密钥长度安全性AES高级加密标准128/192/256 位高DES数据加密标准56 位低已过时2.2 非对称加密非对称加密使用公钥加密私钥解密算法说明密钥长度安全性RSA非对称加密算法1024/2048/4096 位高2.3 哈希算法哈希算法将任意长度的数据转换为固定长度的哈希值算法说明输出长度安全性MD5消息摘要算法128 位低已过时SHA-1安全哈希算法160 位低已过时SHA-256安全哈希算法256 位高SHA-512安全哈希算法512 位高2.4 密钥派生算法算法说明用途PBKDF2基于密码的密钥派生函数密码哈希三、实现方式3.1 AES 加密publicclassAESEncryption{privatereadonlyIAESEncrypt_encrypt;publicAESEncryption(IAESEncryptencrypt){_encryptencrypt;}publicstringEncrypt(stringplainText,stringkey,stringiv){return_encrypt.Encrypt(plainText,key,iv);}publicstringDecrypt(stringcipherText,stringkey,stringiv){return_encrypt.Decrypt(cipherText,key,iv);}}3.2 RSA 加密publicclassRSAEncryption{public(stringPublicKey,stringPrivateKey)GenerateKeyPair(intkeySize2048){usingvarrsanewRSACryptoServiceProvider(keySize);return(rsa.ToXmlString(false),rsa.ToXmlString(true));}publicstringEncrypt(stringplainText,stringpublicKey){usingvarrsanewRSACryptoServiceProvider();rsa.FromXmlString(publicKey);varbytesEncoding.UTF8.GetBytes(plainText);varencryptedBytesrsa.Encrypt(bytes,true);returnConvert.ToBase64String(encryptedBytes);}publicstringDecrypt(stringcipherText,stringprivateKey){usingvarrsanewRSACryptoServiceProvider();rsa.FromXmlString(privateKey);varbytesConvert.FromBase64String(cipherText);vardecryptedBytesrsa.Decrypt(bytes,true);returnEncoding.UTF8.GetString(decryptedBytes);}}3.3 SHA 哈希publicclassSHA1Encryption{publicstringEncrypt(stringplainText){usingvarsha1SHA1.Create();varbytesEncoding.UTF8.GetBytes(plainText);varhashBytessha1.ComputeHash(bytes);returnBitConverter.ToString(hashBytes).Replace(-,);}}四、使用示例4.1 字符串扩展方法框架提供了丰富的字符串扩展方法// AES 加密/解密stringencryptedHello World.AESEncrypt(key,iv);stringdecryptedencrypted.AESDecrypt(key,iv);// RSA 加密/解密stringencryptedHello World.RSAEncrypt(publicKey);stringdecryptedencrypted.RSADecrypt(privateKey);// SHA1 哈希stringhashpassword.SHA1Encrypt();// MD5 哈希stringhashpassword.MD5Encrypt();// PBKDF2 密码哈希stringhashpassword.PBKDF2Encrypt();boolverifiedpassword.PBKDF2Verify(hash);4.2 直接调用加密类publicclassUserService{privatereadonlyAESEncryption_aesEncryption;privatereadonlyRSAEncryption_rsaEncryption;publicUserService(AESEncryptionaesEncryption,RSAEncryptionrsaEncryption){_aesEncryptionaesEncryption;_rsaEncryptionrsaEncryption;}publicvoidEncryptUserData(UserInfouser){// 使用 AES 加密敏感数据user.Email_aesEncryption.Encrypt(user.Email,key,iv);user.Phone_aesEncryption.Encrypt(user.Phone,key,iv);}publicvoidEncryptForTransmission(stringdata){// 使用 RSA 加密传输数据varencrypted_rsaEncryption.Encrypt(data,publicKey);}}4.3 密码哈希publicclassAuthService{publicstringHashPassword(stringpassword){returnpassword.PBKDF2Encrypt();}publicboolVerifyPassword(stringpassword,stringhashedPassword){returnpassword.PBKDF2Verify(hashedPassword);}}4.4 RSA 密钥生成publicclassKeyService{public(stringPublicKey,stringPrivateKey)GenerateKeys(){varrsanewRSAEncryption();returnrsa.GenerateKeyPair(2048);}}五、配置选项5.1 加密配置在appsettings.json中配置{EncryptionSettings:{AES:{Key:your-256-bit-key,IV:your-128-bit-iv},RSA:{KeySize:2048,PublicKey:your-public-key,PrivateKey:your-private-key}}}5.2 AES 配置配置项默认值说明KeynullAES 密钥16/24/32 字节IVnull初始化向量16 字节5.3 RSA 配置配置项默认值说明KeySize2048RSA 密钥长度PublicKeynullRSA 公钥PrivateKeynullRSA 私钥六、高级特性6.1 加密帮助类使用EncryptionHelper简化加密操作// AES 加密stringencryptedEncryptionHelper.AESEncrypt(Hello World,key,iv);// AES 解密stringdecryptedEncryptionHelper.AESDecrypt(encrypted,key,iv);// RSA 加密stringencryptedEncryptionHelper.RSAEncrypt(Hello World,publicKey);// RSA 解密stringdecryptedEncryptionHelper.RSADecrypt(encrypted,privateKey);6.2 随机密钥生成// 生成随机 AES 密钥256 位stringkeyAESEncrypt.GenerateKey(256);// 生成随机 IV128 位stringivAESEncrypt.GenerateIV();// 生成 RSA 密钥对var(publicKey,privateKey)RSAEncryption.GenerateKeyPair(2048);6.3 加密模式支持多种 AES 加密模式模式说明CBC密码块链模式默认ECB电子密码本模式CFB密码反馈模式OFB输出反馈模式6.4 填充模式支持多种填充模式模式说明PKCS7PKCS7 填充默认Zeros零填充None无填充6.5 文件加密使用 AES 加密文件publicvoidEncryptFile(stringinputPath,stringoutputPath,stringkey,stringiv){usingvarinputStreamFile.OpenRead(inputPath);usingvaroutputStreamFile.OpenWrite(outputPath);usingvaraesAes.Create();aes.KeyEncoding.UTF8.GetBytes(key);aes.IVEncoding.UTF8.GetBytes(iv);usingvarencryptoraes.CreateEncryptor();usingvarcryptoStreamnewCryptoStream(outputStream,encryptor,CryptoStreamMode.Write);inputStream.CopyTo(cryptoStream);}6.6 安全建议建议说明使用 AES-256优先使用 256 位密钥的 AES 加密使用 RSA-2048优先使用 2048 位以上的 RSA 密钥不要使用 MD5/SHA-1这些算法已被证明不安全使用 PBKDF2 存储密码不要直接存储密码明文或简单哈希妥善保管密钥密钥不要硬编码在代码中使用配置文件或密钥管理服务七、核心文件文件说明AESEncryption.csAES 对称加密实现AESEncrypt.csAES 加密接口实现RSAEncryption.csRSA 非对称加密实现SHA1Encryption.csSHA-1 哈希实现MD5Encryption.csMD5 哈希实现PBKDF2Encryption.csPBKDF2 密钥派生实现DESCEncryption.csDES 对称加密实现StringEncryptionExtensions.cs字符串加密扩展方法八、总结数据加密通过统一的加密接口和多种加密算法支持实现了灵活的数据加密管理。核心设计思想多种加密算法支持 AES、DES、RSA、SHA、MD5、PBKDF2 等多种加密算法统一接口提供统一的加密接口切换加密算法无需修改业务代码扩展方法提供字符串扩展方法简化加密调用安全可靠实现业界标准的加密算法确保数据安全灵活配置支持通过配置文件配置加密参数这种设计使得数据加密更加灵活和便捷提高了应用的安全性。

相关新闻

智能体测开Day31

智能体测开Day31

2026/7/23 14:50:38

test_skipimport pytestversion "V1R2" pytest.fixture def login():print("前置")yieldprint("后置")def test_001(login):print("测试用例:添加成员")pytest.mark.skip def test_002(login):print("测试用例&#…

洁净设备空间革命:超薄FFU如何突破层高极限?本刊深度探访艾立工业全产业链制造现场——设计制造能力展示

洁净设备空间革命:超薄FFU如何突破层高极限?本刊深度探访艾立工业全产业链制造现场——设计制造能力展示

2026/7/23 14:40:38

在老旧洁净厂房升级、实验室改造以及高端精密制造的特定场景中,层高限制始终是工程师们无法回避的痛点。传统FFU(风机过滤单元)的箱体厚度通常在280mm至350mm之间,当建筑夹层有限或需要密集排布公用设施时,每一厘米的压…

SerDes芯片BIST与BER测试:原理、配置与信号完整性实战

SerDes芯片BIST与BER测试:原理、配置与信号完整性实战

2026/7/23 14:40:38

1. 项目概述与核心价值在高速数字系统设计中,比如高清视频传输、工业相机数据采集或者车载显示屏驱动,我们常常面临一个头疼的问题:如何把几十根并行的数据线,稳定可靠地传输到几米甚至十几米外的接收端?传统的并行总线…

CDN能力边界的技术探讨与实践

CDN能力边界的技术探讨与实践

2026/7/23 16:40:49

1. 项目概述:CDN能力边界的技术探讨 最近在技术社区看到不少关于CDN(内容分发网络)功能局限性的讨论,作为一个在基础设施领域摸爬滚打多年的从业者,我发现很多观点存在明显的认知偏差。这次我们不谈CDN能做什么&#x…

如何借助节气装置,实现氩弧焊40%-60%节气率?

如何借助节气装置,实现氩弧焊40%-60%节气率?

2026/7/23 16:40:49

一、前言:手工氩弧焊车间普遍存在的氩气浪费痛点从事机械制造、钢结构加工、五金精密焊接的一线从业者和车间管理者都清楚,手工氩弧焊的隐性生产成本非常高。除了焊丝、电费、人工工时、设备折旧之外,氩气消耗是多数工厂最容易被忽视的大额耗…

A股量化策略日报(2026年07月23日)

A股量化策略日报(2026年07月23日)

2026/7/23 16:40:49

A股量化策略整合报告 2026年07月23日 整合时间:08:20📊 报告自动同步 (03:16) Response API call failed after 3 retries: HTTP 429: 已达到 Token Plan 用量上限:请升级 Token Plan 套餐或购买积分补充用量。 (2056)📊 量化策略…

虚拟机扩容磁盘

虚拟机扩容磁盘

2026/7/23 16:40:49

虚拟机关机 → 编辑虚拟机设置 → 硬盘 (SCSI) → 扩展,点击扩展后输入想要扩展的容量,:点击确定后重启虚拟机执行以下命令: # 1. 查看磁盘分区,确认 /dev/sda、/dev/sda3 lsblk# 2. 扩展分区表(将空闲空间…

软件压缩会影响软件使用吗?三类文件打包前必看的风险与正确操作

软件压缩会影响软件使用吗?三类文件打包前必看的风险与正确操作

2026/7/23 16:40:49

很多用户会问:软件压缩会影响软件的使用吗?这个问题的答案取决于你压缩的是什么。安装包和绿色软件文件夹可以打包保存,但已经安装到系统中的软件目录如果直接压缩,很可能会影响启动、更新甚至卸载。下面从文件类型、压缩前检查到…

信创迁移不是简单替换:一文看懂VMware替代中的架构演进、双栈一致与大规模落地路径

信创迁移不是简单替换:一文看懂VMware替代中的架构演进、双栈一致与大规模落地路径

2026/7/23 16:30:49

在VMware替代逐渐从“可选项”变成“必须项”的背景下,越来越多企业开始把目光转向信创平台。对架构师背景的IT决策人来说,真正需要解决的并不是“能不能替”,而是“怎么替才稳、怎么替才不影响业务、怎么替才能兼顾现有架构和后续演进”。因…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/23 3:40:08

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/23 4:40:05

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/23 1:54:13

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

企业级AI搜索落地选型实战手册(含LLM+RAG+Hybrid架构对比矩阵与ROI测算模板)

企业级AI搜索落地选型实战手册(含LLM+RAG+Hybrid架构对比矩阵与ROI测算模板)

2026/7/23 0:09:56

更多请点击: https://kaifayun.com 第一章:企业级AI搜索落地选型实战手册(含LLMRAGHybrid架构对比矩阵与ROI测算模板) 企业级AI搜索系统落地成败,核心在于技术选型与业务价值的精准对齐。盲目堆砌大模型能力或过度依赖…

TM4C129LNCZAD外设实战:LCD、比较器与PWM寄存器配置详解

TM4C129LNCZAD外设实战:LCD、比较器与PWM寄存器配置详解

2026/7/23 0:09:56

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于ARM Cortex-M内核的微控制器项目中,深入理解并熟练配置芯片的片上外设,是从“点亮LED”迈向“实现复杂系统功能”的关键一步。Tiva™ TM4C129LNCZAD作为TI公司Cortex-M4F家族中的高性能成员…

AtomCode `fmt_dur` 争议溯源:两个函数、三段演进、四个事实

AtomCode `fmt_dur` 争议溯源:两个函数、三段演进、四个事实

2026/7/23 0:09:56

一、快速声明与争议背景本文是对 AtomCode 终端 spinner 时长显示 fmt_dur 相关说法的事实性核验。2026 年 7 月 CSDN 上出现两篇互相矛盾的博文,近期又有 AI 在对话中输出格式描述 XhYm / YmZs / Zs。本文基于 AtomCode 仓库 main4677ddfa 及全分支 Git 历史给出可…