向多个文件中的现有哈希脚本添加更多哈希

时间:2019-04-03 10:16:08

标签: bash shell sed

我有使用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

有没有人可以帮助我?

谢谢

1 个答案:

答案 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