sapo安全库是一个库,其目的是提供解决常见安全相关问题的函数/类,同时即使不是安全专家也易于使用。

securitylib的Python项目详细描述


#sapo security lib-python

sapo security lib是一个库,其目的是提供解决常见安全相关问题的函数/类
,同时即使不是安全专家也易于使用。此存储库包含此库的python版本


在现代安全最佳实践中(例如,我们使用pbkdf2从
密码派生密钥,我们没有重新发明轮子)。
-非常高(接近100%)的测试代码覆盖率。
-由安全专业人员手动检查代码。
-**默认情况下安全**-使用库和默认参数应该为大多数情况提供足够的安全性(例如,可能不是军事级的顶级安全性,
,但对于gmail这样的应用程序来说就足够了)。灵活性甚至在某些地方被用来提高安全性,例如,使某人很难使用弱的
(即,不可能不使用lib代码)而不是默认的算法。
-**简单的api**-不幸的是,缩写aes,pbkdf2,h对于许多开发人员来说,mac等软件都是很神秘的,许多人知道它们,但可能很难知道何时以及如何使用它们。因此,我们决定在api函数名中隐藏
实现细节,从而产生
"生成加密密钥"、"加密"、"为存储准备密码"等名称,大多数开发人员即使不是安全专家也能理解这些名称。/>

此库中当前有4个模块:

-**加密**-加密函数库。
-**高级加密**-高级加密函数库。
-**随机**-安全生成随机数和字符串。
-**密码**-创建和va用户密码列表。

下面给出了每个模块的一些用例示例。

有关库的完整文档,请转到[此处](http://oss.sapo.pt/securitylib python/)。



(https://github.com/sapo/security lib-python/sapo/securitylib-python)。








sapo security lib的安装方式有很多种。




















;通过皮球释放

1.dowload the[tarball](https://github.com/sapo/securitylib python/archive/1.0.0.tar.gz)
2.打开皮球
3。` python setup.py install`












enc加密密钥=securitylib.crypto生成加密密钥:












对于en基于用户密码的加密:

``python
import securitylib

password='此密码是用户密码'
salt=securitylib.random.get_random_token()
encryption_key=securitylib.crypto.generate_encryption_key_from_password(password,salt)

print(encryption_key)
```

加密和解密数据:

``` python
导入securitylib

数据='这是我们要加密的数据'
加密密钥=securitylib.crypto.generate_encryption_key()
认证密钥=securitylib.crypto.generate_authenticator_key()
加密的_ data=securitylib.crypto.encrypt(data,encryption_key,authenticator_key)
decrypted_data=securitylib.crypto.decrypt(encrypting_data,encryption_key,authenticator_key)
assert(decrypted_data==data)
`````

a流:

`` python
import securitylib

数据块=['this_u is_u','the_u data',''u we',''u want_u to_u','encrypt']


encryption_u key=securitylib.crypto.generate_u encryption_u key()
)对于数据块中的块)

在这里,我们将立即对整个流进行解密,以检查是否得到了原始数据。
stream\cipher2=securitylib.advanced\u crypto.streamcipher(加密密钥)
decrypted\u data=stream\u cipher2.decrypt(加密数据)

original\u data='.join(数据块)

assert(解密数据==original\u data)
`






>使用安全的随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性随机性是的(长度=100,charset='abcdefghjklmnopqrstumvwxyz=100,charset='abcdefghjklmnopqrstumvwxyz')
random-guid=securitylib.random.get_random_-guid()


>打印(随机字节,随机整数,随机字符串,随机字符串,随机guid)
````







>生成一个随机密码:


>python
tylib.passwords.generate_passwor密码d(长度=12,下=真,上=真,数字=真,特殊=真,环境=真)


print(password)
`````


获取密码强度(介于0和100之间):

```python
import securitylib

print(securitylib.password s.get_password强度('123456')
print(securitylib.passwords.get_password强度('thisisypassword'))
打印(securitylib.password s.get_password_strength('this is my password'))
打印(securitylib.passwords.get_password_strength('u6fm08xw@rls')
打印(securitylib.passwords.get_password_strength('this 1s my p4ssword…')
````

根据规则列表验证用户密码:

``python
import securitylib

password='此密码是用户密码'
error\u list=securitylib.passwords.validate\u password(密码,最小长度=12,最小值=1,最小值=1,最小值=1,最小值=1,最小值=1,最小值=50)


print(错误列表)
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java根据一些规则对地图进行排序   java需要关于突破游戏冲突bug的帮助   在Javaservlet中打印XSLT转换的XML文档   使用volatile'status flag'布尔值的java同步?   java Hibernate 4.2、JPA 2.0关系OnetoMany单向注释   在java中,如何在不使用for循环的情况下找到数组列表中第二高的数字?   排序Java多维数组   安装位置上的java Izpack toggel复选框   使用SQL Server 2008数据库交付Java应用程序   处理如何解决线程“动画线程”java中的异常。lang.NullPointerException?   安卓如何在Java中调用OpenSSL方法?   JAVA使用tomcat在jsf应用程序上运行lang.StackOverflowerError   java隐藏javafx Listview中的垂直滚动条   java如何使用Spring Boot在运行时提供静态资源?   java如何将@EJB与远程接口结合使用”   java哪个版本是Sun/Oracle提供的JavaEEAPIX的最新版本。jar和下载最新版本>7.0   java向JavaFX ToggleSwitch添加更改侦听器   保存在哪里以及如何处理Java应用程序的版本?   java AsyncTask执行doInBackground()时出错