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

怎么把淘宝店放到自己做的网站去怎么做一个摄影平台网

怎么把淘宝店放到自己做的网站去,怎么做一个摄影平台网,建设电影网站需要多少钱,创意营销策划案例目录 前言 一、什么是RSA#xff1f; 二、RSA加密的基本概念 1.非对称加密 2.密钥生成 3.加密和解密 三、RSA加密的工作原理 四、RSA的应用场景 五、RSA加密解密的实现 六、RSA算法的局限性及改进措施 前言 在当今的数字化时代#xff0c;信息的安全性成为了人们关注…目录 前言 一、什么是RSA 二、RSA加密的基本概念 1.非对称加密 2.密钥生成 3.加密和解密 三、RSA加密的工作原理 四、RSA的应用场景 五、RSA加密解密的实现 六、RSA算法的局限性及改进措施 前言 在当今的数字化时代信息的安全性成为了人们关注的重点。如何在不安全的通信网络上确保数据传输的安全性RSA加密算法就是一种非常经典的公钥密码体制它的安全性和高效性使其成为互联网加密的基石。本文将对RSA加密算法进行详细解读带大家了解其原理、实现过程以及应用场景。 一、什么是RSA RSARivest-Shamir-Adleman加密算法是一种非对称加密算法由罗纳德·里维斯特Ronald Rivest、阿迪·萨莫尔Adi Shamir和伦纳德·阿德曼Leonard Adleman于1977年提出。RSA算法基于数论中的大素数分解难题其安全性依赖于将一个大数分解成两个大素数的难度。 二、RSA加密的基本概念 1.非对称加密 非对称加密使用一对密钥公钥public key和私钥private key。公钥用于加密消息私钥用于解密消息。这意味着即使公钥被公开只有拥有私钥的人才能解密消息。 2.密钥生成 RSA算法涉及三个主要步骤密钥生成、加密和解密。 选择两个大素数 ( p ) 和 ( q ) 这两个素数应随机选择且足够大以确保安全性。 计算 ( n ) 和 ( \phi(n) ) ( n p \times q ) ( \phi(n) (p-1) \times (q-1) )其中 ( \phi ) 是欧拉函数。 选择公钥指数 ( e ) ( e ) 应满足 ( 1 e \phi(n) ) 且与 ( \phi(n) ) 互质。  计算私钥指数 ( d ) ( d ) 是 ( e ) 关于模 ( \phi(n) ) 的乘法逆元即 ( d \times e \equiv 1 \mod \phi(n) )。 公钥由 ( (e, n) ) 组成私钥由 ( (d, n) ) 组成。 3.加密和解密 加密给定消息 ( M )使用公钥 ( (e, n) ) 进行加密得到密文 ( C ) [ C M^e \mod n ] 解密使用私钥 ( (d, n) ) 进行解密得到明文 ( M ) [ M C^d \mod n ] 三、RSA加密的工作原理 RSA加密的核心在于大素数的选取和运算的复杂性。以下是详细的步骤 密钥生成 选择两个大素数 ( p ) 和 ( q )。 计算 ( n p \times q )。 计算 ( \phi(n) (p-1) \times (q-1) )。 选择公钥指数 ( e )使其与 ( \phi(n) ) 互质。 计算私钥指数 ( d )使 ( d \times e \equiv 1 \mod \phi(n) )。  加密 将明文消息 ( M ) 转换为整数形式。 计算密文 ( C M^e \mod n )。 解密 使用私钥 ( d ) 解密计算 ( M C^d \mod n )。 四、RSA的应用场景 数据加密 RSA常用于保护敏感信息的传输。例如在HTTPS中RSA用于交换对称密钥从而保护数据传输的安全性。 数字签名 RSA还能用于创建数字签名验证消息的完整性和发送者的身份。发送者使用私钥对消息签名接收者用公钥验证签名是否正确。 证书颁发机构CA RSA广泛应用于数字证书证书颁发机构CA使用RSA生成和验证数字证书确保通信双方的身份真实性。 五、RSA加密解密的实现 package com.ctb.demo;import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; import java.util.HashMap; import java.util.Map; public class RSADemo {private static MapInteger, String keyMap new HashMapInteger, String(); //用于封装随机产生的公钥与私钥/** * 随机生成密钥对 * throws NoSuchAlgorithmException */ public static void genKeyPair() throws NoSuchAlgorithmException { // KeyPairGenerator类用于生成公钥和私钥对获取一个RSA密钥对生成器实例,基于RSA算法生成对象 KeyPairGenerator keyPairGen KeyPairGenerator.getInstance(RSA); // 初始化密钥对生成器密钥大小为96-1024位,指定密钥的长度为1024位//SecureRandom类提供的随机数生成器生成随机数作为种子keyPairGen.initialize(1024,new SecureRandom()); // 生成一个密钥对保存在keyPair中 KeyPair keyPair keyPairGen.generateKeyPair(); RSAPrivateKey privateKey (RSAPrivateKey) keyPair.getPrivate(); // 得到私钥 RSAPublicKey publicKey (RSAPublicKey) keyPair.getPublic(); // 得到公钥 //得到公钥字符串String publicKeyString new String(Base64.getEncoder().encode(publicKey.getEncoded())); // 得到私钥字符串 String privateKeyString new String(Base64.getEncoder().encode((privateKey.getEncoded()))); // 将公钥和私钥保存到MapkeyMap.put(0,publicKeyString); //0表示公钥keyMap.put(1,privateKeyString); //1表示私钥System.out.println(公钥publicKeyString);System.out.println(私钥privateKeyString);} /** * RSA公钥加密 * * param str * 加密字符串* param publicKey * 公钥 * return 密文 * throws Exception * 加密过程中的异常信息 */ public static String encrypt( String str, String publicKey ) throws Exception{//通过Base64类对公钥字符串进行解码得到原始的字节数组//base64编码的公钥byte[] decoded Base64.getDecoder().decode(publicKey);//通过KeyFactory.getInstance(RSA)获取RSA密钥工厂实例//并使用generatePublic()方法根据解码后的字节数组生成RSA公钥对象RSAPublicKey pubKey (RSAPublicKey) KeyFactory.getInstance(RSA).generatePublic(new X509EncodedKeySpec(decoded));//RSA加密获取RSA加密算法的密码器实例Cipher cipher Cipher.getInstance(RSA);//初始化密码器指定加密模式为Cipher.ENCRYPT_MODE并传入公钥对象cipher.init(Cipher.ENCRYPT_MODE, pubKey);//使用cipher.doFinal()方法对输入字符串进行加密操作得到加密后的字节数组//通过Base64类对加密后的字节数组进行编码并将编码后的字符串返回String outStr Base64.getEncoder().encodeToString(cipher.doFinal(str.getBytes(UTF-8)));return outStr;}/** * RSA私钥解密* * param str * 加密字符串* param privateKey * 私钥 * return 铭文* throws Exception * 解密过程中的异常信息 */ public static String decrypt(String str, String privateKey) throws Exception{//通过Base64类对加密后的字符串进行解码得到原始的字节数组//64位解码加密后的字符串byte[] inputByte Base64.getDecoder().decode(str.getBytes(UTF-8));//base64编码的私钥//通过Base64类对私钥字符串进行解码得到原始的字节数组byte[] decoded Base64.getDecoder().decode(privateKey); //通过KeyFactory.getInstance(RSA)获取RSA密钥工厂实例//并使用generatePrivate()方法根据解码后的字节数组生成RSA私钥对象RSAPrivateKey priKey (RSAPrivateKey) KeyFactory.getInstance(RSA).generatePrivate(new PKCS8EncodedKeySpec(decoded)); //RSA解密 获取RSA解密算法的密码器实例Cipher cipher Cipher.getInstance(RSA);//初始化密码器指定解密模式为Cipher.DECRYPT_MODE并传入私钥对象cipher.init(Cipher.DECRYPT_MODE, priKey);//使用cipher.doFinal()方法对输入字节数组进行解密操作得到解密后的字节数组//将解密后的字节数组转换为字符串并返回解密后的明文。String outStr new String(cipher.doFinal(inputByte));return outStr;}public static void main(String[] args) throws Exception {//生成公钥和私钥genKeyPair();//加密字符串String message 123;System.out.println(随机生成的公钥为: keyMap.get(0));System.out.println(随机生成的私钥为: keyMap.get(1));System.out.println(----------------------------);String messageEn encrypt(message,keyMap.get(0));System.out.println(message \t加密后的字符串为: messageEn);String messageDe decrypt(messageEn,keyMap.get(1));System.out.println(还原后的字符串为: messageDe);//MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2ocAG/DBOxQRIWDVpo79jjst9Aakcna7dfKugQI4SfjApVYXJdLmk6UU4VPERMb//MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALahwAb8ME7FBEhYNWmjv2OOy30BqRydrt18q6BAjhJMClSystem.out.println(messageEn.length());}} 结果 六、RSA算法的局限性及改进措施 尽管RSA算法在加密领域有着广泛的应用但也存在一些局限性。例如随着计算能力的提升大质数的分解变得越来越容易这可能导致RSA算法的安全性受到威胁。为了应对这些挑战大佬提出了许多改进措施比如使用更长的密钥长度、采用椭圆曲线加密算法等。
http://www.sczhlp.com/news/161152/

相关文章:

  • 网站建设相关基础实验总结网站开发我能做什么
  • centos7怎么做网站服务器一个下载网站
  • 质量好网站建设公司seo网站推广教程
  • 云服务器上放多个网站中国百强城市榜单公布
  • 网站建设规划设计公司企业信息平台登录
  • 辽阳建设银行网站技术先进的网站建设公
  • 网站页面好了怎么做后端广州百度提升优化
  • 网站的推广等内容装修公司网站该怎么做
  • 移动网站建设的前景wordpress注册登录页面模板
  • 建筑网站的特点h5源码分享网
  • 辛集外贸网站建设wordpress如何查看插件
  • 手机购买网站源码建设银行网站登录
  • 建个企业网站收费网站做图尺寸大小
  • 网站建设制作公司哪家电子商务网站建设与管理的有关论文
  • 揭阳网站建设方案托管专业做曝光引流网站
  • 怎么才能创个网站数据做图网站有哪些内容
  • 企业网站怎么制作网站建设不是一次性费用
  • wordpress 指定网站后台seo优化如何做
  • 国庆集训做题10.1 - 10.3
  • 使用 Copilot AI + Blazor 编一个五子棋游戏
  • 软件工程课程第一次团队作业
  • 怎么获取网站数据做统计梦创义网站建设公司
  • 浙江省网站域名备案我的世界封面制作网站
  • 无版权图片网站建设集团网站价格
  • 懒人学做网站国家工商企业信用信息公示系统
  • 在线做爰视频网站dnf制裁做任务网站
  • 成都建设网站多少钱网上商城平台建设
  • 佛山狮山网站建设网站营销管理培训班
  • 上海网站建设技术托管如何给一个网站做定时的更新
  • 域名怎么建网站网站建设亿玛酷专注