如何解决关于Python加密模块的“后端”是什么? 但是 是什么后端?
在使用Python cryptography
模块时,"backend"指的是什么。
例如:.RSABackend
的简单状态:A backend with methods for using RSA.
。
- 这到底是什么意思?
- “后端”由什么构成?
解决方法
所讨论的库本身未实现加密代码。这是因为加密代码容易出现most programmers don't even think about或在日常工作中无需考虑的各种问题。
这些库所做的是使用其他一些软件,这些软件以(希望)安全的方式实现它们。这些软件称为后端。
但是 是什么后端?
按类,我将以HashBackend
为例,但是可以很容易地将其推断到其他后端。出于所有目的和目的,抽象类必须实现两种方法:
-
hash_supported(algorithm)
-
create_hash_ctx(algorithm)
hash_supported
将采用一种算法并返回是否支持特定算法。并非每个后端都可能支持每种算法,因此您可以根据可用性来使用它来确定要使用哪种算法。
create_hash_ctx
将采用一种算法并返回一个“哈希上下文”,这是用于实际计算数据哈希的对象。
对于这两个类,所讨论的类实际上并未实现任何功能。它仅定义它们的存在,文档说明了它们应该的作用。然后,“实际”后端代码(例如OpenSSL backend)将与加密代码的实际实现进行交互。
+-----------------+
| Your Code | This is your code,calling someting like GetHash(input.password)
+-----------------+
|
+--v--------------+
| High-Level | This is the "nice" interface provided by your crypto library
| Crypto Code | This is what you should use 100% of the time
+-----------------+
|
+--v--------------+
| Hash Backend | This is the backend that the "nice" interface calls
+-----------------+
|
+--v--------------+
| OpenSSL Backend | This is what translates requests to a way OpenSSL understands
+-----------------+
|
+--v--------------+
| OpenSSL Library | This is what actually does the cryptographic operations
+-----------------+
根据所讨论的加密任务,该库可能会调用某些旨在完成某些任务的OS功能,例如读取随机数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。