跟我学Shiro - 张开涛
JdbcRealm:通过 sql 查询相应的信息,如“select password from users where username = ?”获取用户密码,“select password, password_salt from users where username = ?”获取用户密码及盐;“select role_name from user_roles where username = ?” 获取用户角色;“select 数组/String 之间转换。 散列算法 散列算法一般用于生成数据的摘要信息,是一种不可逆的算法,一般适合存储密码之类的 数据,常见的散列算法如 MD5、SHA 等。一般进行散列时最好提供一个 salt(盐),比如 加密密码“admin”,产生的散列值是“21232f297a57a5a743894a0e4a801fc3”,可以到一 些 md5 解密网站很容易的通过散列值得到密码“admin”,即如果直接对密码进行散列相 42 如上代码通过盐“123”MD5 散列“hello”。另外散列时还可以指定散列次数,如 2 次表 示:md5(md5(str)):“new Md5Hash(str, salt, 2).toString()”。 使用 SHA256 算法生成相应的散列数据,另外还有如 SHA1、SHA512 算法。 Shiro 还提供了通用的散列支持:0 码力 | 219 页 | 4.16 MB | 10 月前323-云原生观察性、自动化交付和 IaC 等之道-高磊
种全新的 管理方法,而IaC借助了软件开发中的代码管理经验,通过代码描述基础设施的配 置及变更,再执行代码完成配置和变更。 K8S OS DB F5 路由器 防火墙 .... Ansible Salt Chef Pupet 实际上云原生平台自己也采用了IaC来管理应用, 比如K8S的Yaml,这种方式有利于隔离实现细节。 ITIL 需要具体学习不同软 硬件的知识才能管理 只需要写IaC声明性代码来管 DevOps-CICD 软件制品库 Docker引擎安装包、K8S安 装包、数据库等等 投放剧本(Yaml) 根据剧本拉取软件安装 包通过SSH向主机安装 Ansible有个缺陷,无法安装OS,Salt具备 此能力,但是对主机有侵入性0 码力 | 24 页 | 5.96 MB | 5 月前3Python 标准库参考指南 3.6.15
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) 此函数提供 PKCS#5 基于密码的密钥派生函数 2。它使用 HMAC 作为伪随机函数。 字符串 hash_name 是要求用于 HMAC 的哈希摘要算法的名称,例如‘sha1’或‘sha256’。password 和 salt 会以字节串缓冲区的形式被解析。应用和库应当将 password password 限制在合理长度 (例如 1024)。salt 应当 为适当来源例如os.urandom() 的大约 16 个或更多的字节串数据。 iterations 数值应当基于哈希算法和算力来选择。在 2013 年时,建议至少为 100,000 次 SHA-256 迭代。 dklen 为派生密钥的长度。如果 dklen 为 None 则会使用哈希算法 hash_name 的摘要大小,例如 SHA-512 SHA-512 为 64。 >>> import hashlib, binascii >>> dk = hashlib.pbkdf2_hmac('sha256', b'password', b'salt', 100000) >>> binascii.hexlify(dk) b'0394a2ede332c9a13eb82e9b24631604c31df978b4e2f0fbd2c549944f9d79a5'0 码力 | 1886 页 | 8.95 MB | 9 月前3Python 标准库参考指南 3.6.15
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) 此函数提供 PKCS#5 基于密码的密钥派生函数 2。它使用 HMAC 作为伪随机函数。 字符串 hash_name 是要求用于 HMAC 的哈希摘要算法的名称,例如‘sha1’或‘sha256’。password 和 salt 会以字节串缓冲区的形式被解析。应用和库应当将 password password 限制在合理长度 (例如 1024)。salt 应当 为适当来源例如os.urandom() 的大约 16 个或更多的字节串数据。 iterations 数值应当基于哈希算法和算力来选择。在 2013 年时,建议至少为 100,000 次 SHA-256 迭代。 dklen 为派生密钥的长度。如果 dklen 为 None 则会使用哈希算法 hash_name 的摘要大小,例如 SHA-512 SHA-512 为 64。 >>> import hashlib, binascii >>> dk = hashlib.pbkdf2_hmac('sha256', b'password', b'salt', 100000) >>> binascii.hexlify(dk) b'0394a2ede332c9a13eb82e9b24631604c31df978b4e2f0fbd2c549944f9d79a5'0 码力 | 1886 页 | 8.95 MB | 9 月前3Python 标准库参考指南 3.7.13
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) 此函数提供 PKCS#5 基于密码的密钥派生函数 2。它使用 HMAC 作为伪随机函数。 字符串 hash_name 是要求用于 HMAC 的哈希摘要算法的名称,例如’sha1’ 或’sha256’。password 和 salt 会以字节串缓冲区的形式被解析。应用和库应当将 password password 限制在合理长度 (例如 1024)。salt 应当为适当来源例如os.urandom() 的大约 16 个或更多的字节串数据。 iterations 数值应当基于哈希算法和算力来选择。在 2013 年时,建议至少为 100,000 次 SHA-256 迭 代。 dklen 为派生密钥的长度。如果 dklen 为 None 则会使用哈希算法 hash_name 的摘要大小,例如 SHA-512 SHA-512 为 64。 >>> import hashlib, binascii >>> dk = hashlib.pbkdf2_hmac('sha256', b'password', b'salt', 100000) >>> binascii.hexlify(dk) b'0394a2ede332c9a13eb82e9b24631604c31df978b4e2f0fbd2c549944f9d79a5'0 码力 | 1846 页 | 9.09 MB | 9 月前3Python 标准库参考指南 3.7.13
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) 此函数提供 PKCS#5 基于密码的密钥派生函数 2。它使用 HMAC 作为伪随机函数。 字符串 hash_name 是要求用于 HMAC 的哈希摘要算法的名称,例如’sha1’ 或’sha256’。password 和 salt 会 以字节串缓冲区的形式被解析。应用和库应当将 password password 限制在合理长度 (例如 1024)。salt 应当为适 当来源例如os.urandom() 的大约 16 个或更多的字节串数据。 iterations 数值应当基于哈希算法和算力来选择。在 2013 年时,建议至少为 100,000 次 SHA-256 迭代。 dklen 为派生密钥的长度。如果 dklen 为 None 则会使用哈希算法 hash_name 的摘要大小,例如 SHA-512 SHA-512 为 64。 >>> import hashlib, binascii >>> dk = hashlib.pbkdf2_hmac('sha256', b'password', b'salt', 100000) >>> binascii.hexlify(dk) b'0394a2ede332c9a13eb82e9b24631604c31df978b4e2f0fbd2c549944f9d79a5'0 码力 | 1961 页 | 9.14 MB | 9 月前3Python 标准库参考指南 3.8.20
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) 此函数提供 PKCS#5 基于密码的密钥派生函数 2。它使用 HMAC 作为伪随机函数。 字符串 hash_name 是要求用于 HMAC 的哈希摘要算法的名称,例如’sha1’ 或’sha256’。password 和 salt 会以字节串缓冲区的形式被解析。应用和库应当将 password password 限制在合理长度 (例如 1024)。salt 应当为适当来源例如os.urandom() 的大约 16 个或更多的字节串数据。 iterations 数值应当基于哈希算法和算力来选择。在 2013 年时,建议至少为 100,000 次 SHA-256 迭 代。 dklen 为派生密钥的长度。如果 dklen 为 None 则会使用哈希算法 hash_name 的摘要大小,例如 SHA-512 SHA-512 为 64。 >>> import hashlib >>> dk = hashlib.pbkdf2_hmac('sha256', b'password', b'salt', 100000) >>> dk.hex() '0394a2ede332c9a13eb82e9b24631604c31df978b4e2f0fbd2c549944f9d79a5' 15.1. hashlib --- 安全哈希与消息摘要0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) 此函数提供 PKCS#5 基于密码的密钥派生函数 2。它使用 HMAC 作为伪随机函数。 字符串 hash_name 是要求用于 HMAC 的哈希摘要算法的名称,例如’sha1’ 或’sha256’。password 和 salt 会以字节串缓冲区的形式被解析。应用和库应当将 password password 限制在合理长度 (例如 1024)。salt 应当为适当来源例如os.urandom() 的大约 16 个或更多的字节串数据。 iterations 数值应当基于哈希算法和算力来选择。在 2013 年时,建议至少为 100,000 次 SHA-256 迭 代。 dklen 为派生密钥的长度。如果 dklen 为 None 则会使用哈希算法 hash_name 的摘要大小,例如 SHA-512 SHA-512 为 64。 >>> import hashlib >>> dk = hashlib.pbkdf2_hmac('sha256', b'password', b'salt', 100000) >>> dk.hex() '0394a2ede332c9a13eb82e9b24631604c31df978b4e2f0fbd2c549944f9d79a5' 15.1. hashlib --- 安全哈希与消息摘要0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) 此函数提供 PKCS#5 基于密码的密钥派生函数 2。它使用 HMAC 作为伪随机函数。 字符串 hash_name 是要求用于 HMAC 的哈希摘要算法的名称,例如’sha1’ 或’sha256’。password 和 salt 会 以字节串缓冲区的形式被解析。应用和库应当将 password password 限制在合理长度 (例如 1024)。salt 应当为适 当来源例如os.urandom() 的大约 16 个或更多的字节串数据。 iterations 数值应当基于哈希算法和算力来选择。在 2013 年时,建议至少为 100,000 次 SHA-256 迭代。 dklen 为派生密钥的长度。如果 dklen 为 None 则会使用哈希算法 hash_name 的摘要大小,例如 SHA-512 SHA-512 为 64。 >>> import hashlib >>> dk = hashlib.pbkdf2_hmac('sha256', b'password', b'salt', 100000) >>> dk.hex() '0394a2ede332c9a13eb82e9b24631604c31df978b4e2f0fbd2c549944f9d79a5' 3.4 新版功能. 注解: 随同0 码力 | 2052 页 | 9.74 MB | 9 月前3Python 标准库参考指南 3.10.15
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) 此函数提供 PKCS#5 基于密码的密钥派生函数 2。它使用 HMAC 作为伪随机函数。 字符串 hash_name 是要求用于 HMAC 的哈希摘要算法的名称,例如’sha1’ 或’sha256’。password 和 salt 会以字节串缓冲区的形式被解析。应用和库应当将 password password 限制在合理长度 (例如 1024)。salt 应当为适当来源例如os.urandom() 的大约 16 个或更多的字节串数据。 iterations 的数值应当基于哈希算法和机器算力来选择。在 2022 年,建议选择进行数万次的 SHA-256 迭代。对于为何以及如何选择最适合你的应用程序的迭代次数的理由,请参阅 NIST-SP-800-132 的 Appendix A.2.2。其中 our_app_iters = 500_000 # Application specific, read above. >>> dk = pbkdf2_hmac('sha256', b'password', b'bad salt'*2, our_app_iters) >>> dk.hex() '15530bba69924174860db778f2c6f8104d3aaf9d26241840c8c4a641c8d000a9'0 码力 | 2072 页 | 10.39 MB | 9 月前3
共 77 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8