首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

PHP常见加密函数用法示例【crypt与md5】

分享给大家供大家参考,具体如下: 1.crypt()函数 crypt()函数用于返回使用DES、Blowfish或MD5算法加密过后的字符串,crypt(str,salt)接受2个参数,第1个为需要加密的字符串...php //使用crypt()函数进行加密 $password = 'zalou.cn'; //没有提供盐值 echo "加密前:"....$password; echo "加密后(无盐值):".crypt($password); echo "<hr "; //提供盐值 $salt = "good"; echo "加密后(有盐值):".crypt...总结:通过刷新前与刷新后可以发现,crypt()函数如果没有盐值加密后的字符串的第2个与第3个之间的字符串的8个字符串是由PHP自动生成的,每刷新一次就变一次;crypt()函数如果定义了盐值后,只会截取盐值的前...注意:crypt()函数是一种单向算法,没有相应的解密函数。PHP添加盐值默认使用DES加密,如果salt这个字符串以1开头,以 ? ?

2.4K21

利用Python 生成hash值

在Python中可以利用二个模块来进行: - crypt - hashlib 二、crypt (一)crypt的主要方法和常量 名称 类型 描述 crypt(…) 方法 对指定内容进行hash加密...返回可用加密算法的列表 METHOD_MD5 常量 md5加密算法 METHOD_SHA256 常量 sha256加密算法 METHOD_SHA512 常量 sha512加密算法 (二)使用说明与示例 使用crypt.crypt...(…)进行hash加密的时候,需要提供二个参数: - 加密内容 - salt 如果不特别指定salt,系统就会调用crypt.mksalt(…)生成一个salt 如果想要以特定的加密算法生成salt...就应该使用下面的命令: >>>salt = crypt.mksalt(crypt.METHOD_SHA512) >>> salt '$6$s8Q3eNP6urKZb3AK' 然后再进行数据加密: >>>...hash = crypt.crypt("helloworld",salt) >>> hash '$6$s8Q3eNP6urKZb3AK$L0O5cqHRU.1f170bV2KrjF3LkLL54So442TqUIsk.wYtCtOSD4Tyt

1.2K10

你的nginx登录认证安全吗?

从上面两张图可以看到htpasswd总共有4种加密算法,分别是MD5、bcrypt、CRYPT、SHA,在httpd-tools 2.2的版本中,默认使用的是CRYPT加密算法来进行密码加密的,而httpd-tools...2.4的版本中,默认是使用MD5来进行密码加密的 我上面的问题就是出在低版本中,使用CRYPT默认加密的情况下发生的 crypt是一个加密算法函数,它是基于DES算法,将字符串加密,函数定义如下: char...*crypt(const char *key, const char *salt); crypt在加密时,将key所指的字符串仅取前8个字符进行加密,超过8位的没有任何意义,这也就是为什么我上面最后一位输错了仍然可以进入...web页面的原因,因为指认前8位,后面是什么无所谓,都可以认证通过 crypt加密后的密文为13位,前面两个就是上面函数定义中的salt代表的字符串 然后有人说明明SHA比MD5加密要安全性高,为什么新版本中用

2.3K20

记录Viper加载远程配置填坑过程

究其原因,是因为 viper 依赖 crypt,而 crypt 截至目前还不支持新版 etcd 的 api。 viper 使用 crypt 做什么呢?...在文档中可以找到如下描述: Viper uses crypt to retrieve configuration from the K/V store, which means that you can...也就是说,KV 中可以存储加密的数据,viper 在获取的时候通过 crypt 自动解密。...的 Watch 实现在每次调用的时候都会生成一个新的 goroutine,并且无法退出,于是乎 goroutine 的数量就失控了,因为问题出在 crypt 身上,viper 无法根治,为了掩盖此问题...了解了前因后果之后,我决定跳过 crypt,自己实现加载远程配置的功能,其实就是实现 viper 中的 remoteConfigFactory 接口: type remoteConfigFactory

49230
领券