用于加密的公钥;解密用的私钥?

2024-03-28

我知道私钥和公钥在数学上是相关的,用一个密钥加密的数据只能用另一个密钥解密。我的问题是私钥总是用于加密数据,而公钥总是用于解密数据?或者可以反过来,如果是这样,您能否给出一些在其他方向使用的示例应用程序(用于加密的公钥和用于解密的私钥)?


加密是关于对某些数据保密;数据被转换为不透明的 blob,并且反向操作需要攻击者不知道的东西,即“秘密”或“私人”信息。加密的全部意义在于解密仅靠公开信息是无法完成的;因此解密使用私钥。然而,让任何人加密数据是没有问题的,因此加密可以使用公钥。

有一些算法(实际上只有一种:RSA)乍一看似乎是“可逆的”:您可能会考虑使用私钥进行加密,使用公钥进行解密。如上所述,存在机密性(如果解密密钥是公开的,那么任何人都可以解密,因此加密的数据不能再被视为机密)。这种“逆向加密”可以用作数字签名算法,其中没有机密性的概念,而是密钥所有者行为的可验证证据。

HoweverRSA 的意义不仅仅是模幂。 RSA加密首先通过称为“填充”的操作将输入消息转换为大整数。 RSA签名生成首先通过另一个操作(也称为“填充”)将输入消息转换为大整数;but这不是at all相同的填充。填充对于安全性至关重要,并且加密和签名所需的特性截然不同。例如,加密填充需要高水平的附加随机性,而签名填充需要大量冗余(以及哈希函数,以便容纳长输入消息)。

将签名称为“使用私钥加密”是 RSA 标准历史上的说法(因此名称为“md5WithRSAEncryption”),但它不准确(填充是而且必须是不同的)并且过于具体(它适用于仅适用于 RSA,不适用于 El Gamal、DSA、Diffie-Hellman、NTRU...)。这只是一个普遍存在的困惑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于加密的公钥;解密用的私钥? 的相关文章

  • 应用程序的私有文件

    我想创建一个文件来存储一些只能由我的应用程序访问的数据 外部用户不应该能够访问该文件或对其进行任何更改 我将在文件中存储一个密钥 该密钥可能由我的应用程序访问需要时随时使用应用程序 使用Environment getDataDirector
  • 安全地存储访问令牌

    我应该采取哪些安全措施来确保 如果我的数据库受到损害 长寿命访问令牌不会被盗 长寿命访问令牌与特定服务的用户名和密码一样好 但从与其他人的交谈看来 大多数人 包括我自己 都以纯文本形式存储访问令牌 这似乎与以纯文本形式存储密码一样糟糕 显然
  • FileSink、StringSink、Filesource、StringSource Crypto++ 之间有什么区别

    我正在读取图像 对其进行加密 然后解密 目标是最终循环并记录该过程完成所需的时间 目前我所拥有的它读取文件 然后加密它 加密它 然后根据恢复的数据创建另一个文件 我不需要用解密的图片创建另一个文件 以前我一直在使用StringSource
  • 如何使用 SSH 密钥和 Pageant 通过 Paramiko 连接到 SFTP

    我正在尝试使用受密码保护的 SSH 密钥通过 Paramiko 连接到 SFTP 我已将密钥加载到 Pageant 中 据我所知 Paramiko 支持该密钥 但我无法用它来解密我的私钥 我找到了这个例子here https stackov
  • Java 中所有 UTF-8 字符的维吉尼亚密码

    我有一个简单的函数 用于通过 Java 中的 Vigen re 加密字符串 我省略了解密 因为这只是计算新值的行中的 而不是 但此功能仅适用于普通字母 A Z 如何更改该函数以使其支持小写字母以及大写字母和所有其他 UTF 8 字符 pub
  • Java 7 keytool 椭圆曲线加密

    我正在尝试使用带有 keyalg ECC 的 keytool 创建密钥库 这应该是可能的 根据Oracle http www oracle com technetwork java javase jdk7 relnotes 418459 h
  • 使用 NSValueTransformer 加密 iOS 核心数据

    我正在尝试使用 Core Data 和 CommonCrypto 加密数据 我正在尝试使用 NSValueTransformer 来延迟加密和解密 但是 当我现在尝试将加密数据保存到持久存储协调器时 它失败了 每次我尝试将数据保存到数据库时
  • 将公钥添加到 ~/.ssh/authorized_keys 不会自动登录

    我将公共 SSH 密钥添加到授权密钥 file ssh localhost应该让我登录而不询问密码 我这样做并尝试输入ssh localhost 但它仍然要求我输入密码 我还需要进行其他设置才能使其正常工作吗 我已按照更改权限的说明进行操作
  • 分形加密

    我听说可以使用 Mandlebrot 集的图来加密数据 并且这种加密算法是量子安全的 与许多常用算法不同 不能用量子计算机破解 我在 Google 上查找更多信息 但只找到了一些针对非技术受众的文章 有谁有任何这方面的资源 我可以用它来了解
  • PHP password_hash 检查两个哈希值

    如果我有两个使用创建的密码哈希password hash http www php net manual en function password hash php函数 我如何判断它们是否来自相同的基本密码 我知道它每次都使用不同的盐 我没
  • openssl-使用密钥和 IV 解密 Base64 字符串

    我正在尝试解密已在 openssl 中使用 aes256 加密的 base64 字符串 我获得了会话密钥和 IV 它们是用我的密钥加密的 我将它们转换为十六进制 以便可以使用以下 openssl 命令 openssl enc d aes25
  • AES-256 加密和 Apple iTunes 导出限制

    我有一个很大的问题 我开发了 3 个应用程序 2 个用于 IOS 1 个用于 mac osx 来加密文件RNCryptor https github com rnapier RNCryptor 女巫是一个CCCryptor AES 加密 包
  • 有没有一种简单的方法来加密java对象?

    我想将序列化对象存储到文件中 但我想对其进行加密 它不需要非常强的加密 我只是想要一些简单的东西 最好是最多几行代码 这会让其他人加载起来更加困难 我已经研究过 SealedObject 但关键是阻止我 理想情况下 我只想传递一个字符串作为
  • 使用 Rijndael 加密/解密文件

    我需要传输 xml 文件 并且需要对它们进行加密 我发现一些例子认为我已经接近了 但是当我解密文件时 我最终得到了尾随垃圾字符 有一些关于此的帖子 但我还没有看到任何能真正有帮助的帖子 这是加密和解密代码 private void Encr
  • 公钥的长度(加密)可以与私钥不同吗?

    我有一个 1024 位的私钥 并用它来生成公钥 这是否自动意味着我的公钥也具有 1024 加密 或者它的加密大小可以更小吗 512 256 PS 我最感兴趣并谈论的是 RSA 密钥中模数 n 的大小 大小通常为 1024 或 2048 位
  • 在 Android 中打开受密码保护的 ZIP?

    有没有一个库或一个简单的方法如何在 Android 中打开受密码保护的 ZIP 存档 我知道 ZIP 加密有不同类型 我想打开最简单的一个 在 Unix 中使用以下命令创建zip e命令 可以在 Windows 中打开相同的文件 将要求输入
  • 通过私钥使用 Python 进行 SSH

    在我的脚本中 我需要使用私钥通过 SSH 连接到远程系统 并将文件转储到其目录中 我用来 SSH 进入系统的命令是这样的 ssh i private key localhost 接下来是标准输入 输入密钥 private key 的密码 我
  • 如何将 AES CCM 与 Bouncycastle JCE 提供程序一起使用 - CCMParameters

    是否可以使用JCE来执行CCM 我在互联网上看到很多使用非 JCE bouncycastle 类的示例 特别是 我看到他们调用 init 并传入 CCMParameters 对象 问题是 这个 CCMParameters 对象不是从 Alg
  • 初始化 FingerpringManager.Crypto 对象,获取 AndroidKeyStore 提供程序不支持的加密原语?

    我使用的是安卓FingerPrintManagerAPI 并使用 KeyPairGenerator 创建密钥对 我想用公钥加密密码 然后在用户通过输入指纹进行身份验证时解密 但是一旦我运行我的项目 它就会崩溃并给出 引起原因 java la
  • iOS:获取 iPhone 密码以生成用于加密的对称密钥

    我正在开发一个 iOS 应用程序 该应用程序分发到所有用密码锁定的设备 有没有办法获取设备密码 或其某种形式 来动态生成对称密钥 例如使用 PBKDF2 来加密 解密数据 否 没有 API 可以确定是否设置了设备密码或获取密码 如果已设置

随机推荐

  • 如何进行递归子文件夹搜索并返回列表中的文件?

    我正在编写一个脚本 以递归方式遍历主文件夹中的子文件夹并构建特定文件类型的列表 我的脚本有问题 目前设置如下 for root subFolder files in os walk PATH for item in files if ite
  • Jquery AJAX:服务器端验证失败时如何显示Flash错误消息?

    我正在使用 Jquery 表单插件通过 ajax 提交表单 我已经在我的模型中的服务器端设置了验证 现在 当验证失败时 我想使用 ajax 向用户显示相同的 flash error 消息 如果验证成功 我可以显示 flash notice
  • Xcode 卡在索引上

    我已经工作了两个月的项目无缘无故停止工作 因为 Xcode 卡在 索引 上 我无法再构建该项目了 如果我尝试构建 Xcode 就会冻结 我必须强制退出 这种情况仅发生在该项目中 我尝试清理所有派生数据 但没有帮助 我正在使用 Xcode 4
  • jqgrid 更改单元格值并保持编辑模式

    我在网格中使用内联编辑 在某些情况下我想更改列内单元格的值 我用 setCell 更改它 效果很好 我的问题是 更改后 单元格失去了编辑模式 而该行的所有其他单元格都处于编辑模式 我想在更改单元格后将其保持在编辑模式 现在我所做的是保存该行
  • 种子中的 DHT

    我正在编写一个 P2P 实现 我希望将其去中心化 然而我在掌握如何做时遇到了一些困难DHT https en wikipedia org wiki Distributed hash table在像 BitTorrent 这样的协议中是有效的
  • 帮助正确计算atan2

    我需要计算线之间的角度 我需要计算atan 所以我正在使用这样的代码 static inline CGFloat angleBetweenLinesInRadians2 CGPoint line1Start CGPoint line1End
  • python中“追加”和“+”有什么区别? [复制]

    这个问题在这里已经有答案了 我不知道有什么区别f and g 功能中f 每当调用函数时 列表 L 就会累积 但在功能上g 它不是 def f a L L append 2 print L def g a L L L 2 print L pr
  • SQL Server 2008中的递归同表查询

    我在 SQL Server 2008 数据库中有下表 Id Name ParentFolder 1 Europe NULL 2 Asia NULL 3 Germany 1 4 UK 1 5 China 2 6 India 2 7 Scotl
  • echo 函数跳转到 Div 之外

    我创建了一个用于 gettext 翻译的函数 该函数位于头文件中 function ex text echo gettext text 当我使用函数 ex 时它会翻译该函数中的任何文本 效果很好 尽管当我在另一个内部有 div 的函数中使用
  • 使用 Apache Lucene 对 MySQL 数据库建立索引,并保持它们同步

    当MySQL中添加一个新项目时 它也必须被Lucene索引 当现有项目从 MySQL 中删除时 它也必须从 Lucene 的索引中删除 这个想法是编写一个脚本 通过调度程序 例如 CRON 任务 每 x 分钟调用一次 这是保持 MySQL
  • 简单的 Perl websocket 客户端

    我正在尝试用 Perl 编写一个简单的 websocket 客户端 use Protocol WebSocket Client my client Protocol WebSocket gt new url gt ws myserver p
  • 使用多核的 Numpy np.einsum 数组乘法

    我用MKL编译了numpy 1 6 2和scipy 希望有更好的性能 目前我有一个严重依赖 np einsum 的代码 并且我被告知 einsum 不适用于 MKL 因为几乎没有矢量化 所以我想用 np dot 和切片重新编写一些代码 只是
  • 预训练 Transformer 模型的配置更改

    我正在尝试为重整变压器实现一个分类头 分类头工作正常 但是当我尝试更改配置参数之一 config axis pos shape 即模型的序列长度参数时 它会抛出错误 Reformer embeddings position embeddin
  • IL 使用 Reflection.Emit 调用带有 params object[] 参数的方法

    我正在编写一个需要稍后类型构建的库 库使用平台 Net core 2 0 我使用 Reflection Emit 生成的某些类型存在问题 public class GeneratedA A IA public void DoInterfac
  • 为什么 git rebase 在我未修改的文件中显示冲突?

    假设我在本地仓库 其分支是my name branch A 当我做git rebase
  • XML::LibXML 文本节点父节点的概念

    这里似乎有些奇怪 在下面的示例中 我通过 XPath 查询访问文本节点 book isbn text The text 需要强制XML LibXML允许我使用XML LibXML Text方法 不过 要到达父节点 我必须调用parentNo
  • NSLocationWhenInUseUsageDescription 的 Xamarin.iOS 本地化

    有没有办法本地化NSLocationWhenInUseUsageDescription in Info plist在 Xamarin 工作室中 或者是否有可能将完整的内容本地化Info plist也将是一个解决方案 我尝试了以下步骤 因为它
  • 如何在 for 循环中制作按钮,并为每个按钮添加 lambda 表达式? [复制]

    这个问题在这里已经有答案了 我正在尝试用 javafx 制作一个刽子手游戏 因此 很自然地 我尝试使用 for 循环来创建每个按钮 而不是创建 26 个单独的按钮 我将它们放入名为 Alphabet 的 ArrayList 中 并将它们添加
  • 快速滚动 UIPageViewController 阻止视图控制器更新

    我有一个 UIPageviewcontroller 里面有两个控制器 当您滑动到下一个时 我使用 viewController 参数来设置适当的委托 但我的经验是 如果你滑动得太快 函数 viewControllerAfter 就无法正确更
  • 用于加密的公钥;解密用的私钥?

    我知道私钥和公钥在数学上是相关的 用一个密钥加密的数据只能用另一个密钥解密 我的问题是私钥总是用于加密数据 而公钥总是用于解密数据 或者可以反过来 如果是这样 您能否给出一些在其他方向使用的示例应用程序 用于加密的公钥和用于解密的私钥 加密