我有使用md5哈希将密码存储到MySQL的php脚本文件
在该php文件中有一些现有的查询代码
some query part....,MD5('$pass'),.....some query part
某些脚本的小写md5
some query part....,md5('$pass'),.....some query part
我的目标是向现有代码中添加另一个哈希,例如sh1
所以预期的查询脚本应该是这样
some query part....,sh1(MD5('$pass')),.....some query part
最后,当前的md5大小写无关紧要
我尝试使用sed替换该文件,但没有运气
sed -i 's/md5\(.*\)/sha1\(md5\(.*\)\)/gI' *.php
有没有人可以帮助我?
谢谢
答案 0 :(得分:0)
您可以使用
sed -i 's/\bmd5([^()]*)/sha1(&)/gI' *.php
POSIX BRE表达式匹配:
\b
-单词边界md5(
-一个md5(
子字符串[^()]*
-除(
和)
之外的0个或更多字符)
-一个)
字符。 sha1(&)
替换模式将替换匹配项sha1(
,然后替换匹配值,然后替换)
。
请参见the online demo:
s='some query part....,MD5('"'"'$pass'"'"'),.....some query part
some query part....,md5('"'"'$pass'"'"'),.....some query part'
sed 's/\bmd5([^()]*)/sha1(&)/gI' <<< "$s"
输出:
some query part....,sha1(MD5('$pass')),.....some query part
some query part....,sha1(md5('$pass')),.....some query part