当前位置: 首页 > news >正文

网站服务器怎么更换阿里巴巴国际站怎么网站建设

网站服务器怎么更换,阿里巴巴国际站怎么网站建设,网站建设备案优化,军事最新消息中国Rsa加解密 概述聚合算法名称#xff08;用于创建加密器#xff09;基本概念填充方式分块加密 基本使用生成密钥加解密创建加密器设置模式#xff08;加密#xff09;、公钥对明文加密#xff0c;并对结果进行Base64编码对以上结果#xff0c;进行解密 设置模式#xff0… Rsa加解密 概述聚合算法名称用于创建加密器基本概念填充方式分块加密 基本使用生成密钥加解密创建加密器设置模式加密、公钥对明文加密并对结果进行Base64编码对以上结果进行解密 设置模式解密、私钥 签名 验签创建签名器初始化签名器加载签名明文生成签名初始化验签参数加载签名明文验签 关于初始化加密器和签名器的重载方法 概述 RSA 是一种非对称加密算法它使用一对密钥公钥和私钥。公钥用于加密数据私钥用于解密数据或者私钥用于签名公钥用于验证签名。 聚合算法名称用于创建加密器 JDK官方文档 常用名称 加密算法名 RSA/ECB/NoPaddingRSA/None/NoPaddingRSA/ECB/PKCS1PaddingRSA/ECB/OAEPWithSHA-1AndMGF1PaddingRSA/ECB/OAEPWithSHA-256AndMGF1Padding 签名算法 SHA1withRSA早期使用现不推荐SHA256withRSA满足日常需要一般情况用得最多SHA384withRSA安全性要求更高计算成本随着变高SHA512withRSA安全性要求极高MD5withRSA目前已不推荐使用MD5被证明存在安全漏洞 基本概念 RSA需要一对密钥对通常需要代码或工具生成。 原始密钥数据是字节数组因此如果需要分发或者存储通常也会进行Base64编码。 填充方式 RSA对明文同样有要求明文块不能大于密钥长度。因此通常情况下也需要进行明文填充如果选择无填充那么明文长度如果不是密钥长度倍数那么可能会报错。 PKCS1Padding 这是最常用的填充方式基本满足日常使用OAEPOAEPWithSHA-1AndMGF1Padding 和 OAEPWithSHA-256AndMGF1Padding OAEP 是一种更安全的填充方式主要用于防止选择明文攻击CPA等高级攻击方式。它基于哈希函数和掩码生成函数来构建填充结构。多用于安全要求较高的场景如金融等场景。虽然安全性更高但是计算成本也更高。NoPadding 不进行填充此时对明文有要求长度须是密钥整数倍。 分块加密 RSA算法要求单次加密明文长度不能超出密钥长度如果明文可能超出密钥长度要么使用ECB分块模式加密要么手动分块后逐个块加密。 分块模式ECB按密钥长度分块、NONE不分块 基本使用 生成密钥 支持密钥长度512及以下早期使用现在少用、1024用得较多、2048目前使用最多、3072 位和 4096 位对安全要求极高的场景但会增加计算成本 生成密钥对象 KeyPairGenerator pairGenerator KeyPairGenerator.getInstance(RSA); pairGenerator.initialize(2048); KeyPair keyPair pairGenerator.genKeyPair();解析出公私钥可以从密钥对象中获取公私钥 // 私钥 PrivateKey privateKey keyPair.getPrivate(); // 公钥 PublicKey publicKey keyPair.getPublic();此时的公私钥是以字节数组存在如果要进行存储和分发。通常使用Base64编码 // 私钥字符串 String privateEncode Base64.getEncoder().encodeToString(privateKey.getEncoded());// 公钥字符串 String publicEncode Base64.getEncoder().encodeToString(publicKey.getEncoded())加解密 创建加密器 Cipher cipher Cipher.getInstance(RSA/ECB/PKCS1Padding);设置模式加密、公钥 cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic());对明文加密并对结果进行Base64编码 byte[] bytes cipher.doFinal(str.getBytes(StandardCharsets.UTF_8));System.out.println(加密后的内容 Base64.getEncoder().encodeToString(bytes));对以上结果进行解密 设置模式解密、私钥 cipher.init(Cipher.DECRYPT_MODE, keyPair.getPrivate()); byte[] bytes1 cipher.doFinal(bytes); System.out.println(解密后的内容 new String(bytes1));签名 验签 我们通常说的RSA签名实际上是一种简略的说法。 RSA签名实际是签名 加密 2个过程。 其中散列算法或者叫摘要算法签名算法等等常用的有 SHA256大部分场景使用平衡安全和性能SHA384SHA512MD5MD5被证明存在漏洞不推荐使用SHA1早期使用目前已不推荐使用 这些散列算法是独立于RSA的RSA签名算法名称就是在它们后面增加 withRSA 而已。 所谓RSA签名只是对散列算法得到的散列值进行RSA加密而已。这一点要明确。 接着上面创建RSA密钥后开始进行签名与验签 创建签名器 与加解密不同签名器由Signature这个类提供支持 Signature signature Signature.getInstance(SHA256withRSA);初始化签名器加载签名明文 signature.initSign(keyPair.getPrivate()); signature.update(str.getBytes(StandardCharsets.UTF_8));生成签名 byte[] byteSign signature.sign(); System.out.println(签名 Base64.getEncoder().encodeToString(byteSign));初始化验签参数加载签名明文 signature.initVerify(keyPair.getPublic()); signature.update(str.getBytes(StandardCharsets.UTF_8));验签 boolean verify signature.verify(byteSign); System.out.println(验签结果 verify);关于初始化加密器和签名器的重载方法 在RSA加密场景除了模式公钥外还有个参数SecureRandom random它用于在一些填充模式OAEP下生成一个随机掩码提高加密安全性。
http://www.hkea.cn/news/14288619/

相关文章:

  • 怎么做北京赛车网站kali wordpress
  • 网站信息备案变更 哪里做搭建linux服务器
  • 有哪些是用到了网站推广wordpress 微商
  • 佛山公司网站推广外包服务优化方案2022版
  • 网站自动采集rss佛山市网站建设企业
  • 广州北京网站建设公司网站权重如何做
  • 如何在网站上做推广专业的佛山网站设计
  • 免费ppt模板 网站开发专业网站建设的价格
  • 做磁力网站网站开发发展存在的问题
  • 自己做的网站绑定域名怎么添加wordpress模板文件
  • wikidot网站怎么做东莞整站优化公司火速公司
  • 怎么在主机上的建设网站做银行流水网站
  • 外国做电子产品网站有哪些北京轨道交通建设公司网站
  • wordpress 婚纱摄影昆山做网站优化
  • 松北建设局网站4399国语免费播放
  • 无锡富通电力建设有限公司网站正邦设计作品
  • 怎么用div做网站网站选项按钮
  • 现在最常用网站开发工具做网站卖别人的软件可以吗
  • wordpress站群代关于政务网站建设工作情况的总结
  • 极简资讯网站开发求职网站
  • 嘉兴建设公司网站ps软件下载平板版
  • 网站标题能改吗本地网站建设教程xampp
  • 做网站的工作是什么好看的网站案例
  • 漫画网站建设浙江信息港官网
  • 怎样把网站做的高大上wordpress 插件 推荐
  • php网站连接数据库最好的免费网站空间
  • 撩人的网站怎么做tiktok官方网站入口
  • 盘锦建设工程信息网站网站代备
  • 学会网站建设目的做网站公众号多少钱
  • 提示网站正在建设中响应式网站 拖拽