pass=${pass:‐123456}
时间: 2023-10-29 22:07:05 浏览: 40
这是一个在Bash脚本中的语句,它的作用是将变量pass的值设置为-123456。在这个语句中,pass是一个变量,:是一个分隔符,-123456是要赋给pass变量的值。
#### 引用[.reference_title]
- *1* *2* *3* [34 个 常用 Linux Shell 脚本,运维必备!](https://blog.csdn.net/LinkSLA/article/details/130718274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关问题
给下面这段代码加上加盐处理<?php $user = $_POST['username']; $pass = $_POST['password']; if($user && $pass){ $db = new PDO('mysql:host=localhost;dbname=php_wish', 'root', 'root'); $pre = $db->prepare('select * from user where username=:user limit 1'); $pre->execute(['user' => $user]); if($pre->rowCount() > 0){ echo "用户已存在!<br>"; echo "<a href='reg.php'>返回注册页</a>"; } else{ $pre = $db->prepare('insert into user (username, password) values (:user, :pass)'); $pre->execute(['user' => $user, 'pass' => $pass]); echo "注册成功!<br>"; echo "<a href='login.php'>前往登录页</a>"; // print_r($pre->errorInfo()); } } else { echo "注册失败!<br>"; echo "<a href='reg.php'>返回注册页</a>"; }
好的,以下是加盐处理后的代码:
```php
$user = $_POST['username'];
$pass = $_POST['password'];
if($user && $pass){
$db = new PDO('mysql:host=localhost;dbname=php_wish', 'root', 'root');
$pre = $db->prepare('select * from user where username=:user limit 1');
$pre->execute(['user' => $user]);
if($pre->rowCount() > 0){
echo "用户已存在!<br>";
echo "<a href='reg.php'>返回注册页</a>";
}
else{
// 加盐处理
$salt = '123456'; // 自定义盐值
$password = md5($pass . $salt); // 加盐后的密码
$pre = $db->prepare('insert into user (username, password, salt) values (:user, :pass, :salt)');
$pre->execute(['user' => $user, 'pass' => $password, 'salt' => $salt]);
echo "注册成功!<br>";
echo "<a href='login.php'>前往登录页</a>";
// print_r($pre->errorInfo());
}
}
else {
echo "注册失败!<br>";
echo "<a href='reg.php'>返回注册页</a>";
}
```
在这里,我们加入了加盐处理,即在用户输入的密码后面加上一个自定义的盐值(在这里使用了字符串“123456”作为盐值),然后再对该字符串进行 MD5 加密,最终得到加盐后的密码。同时,我们还在数据库中增加了一个字段“salt”,用于保存盐值,以备后续验证时使用。这样,即使黑客获取了数据库中的密码信息,由于不知道盐值,也无法轻易地破解出用户的真实密码。
start_addr=0x05877000 #end_addr=0x3ffff000 end_addr=0x05877002 data_write=0x55AA55AA data_read=$(printf "%08x" $data_write) count=0 match_count=0 for ((addr=$start_addr; addr<$end_addr; addr=addr+4)); do echo $data_write | dd of=/dev/mem bs=4 count=1 seek=$(($addr/8)) conv=notrunc 2>/dev/nul data=$(dd if=/dev/mem bs=4 count=1 skip=$(($addr/4)) 2>/dev/null | hexdump -e '/4 "%08x\n"') #percent=$(echo "scale=2; ($addr - $start_addr) * 100 / ($end_addr - $start_addr)" | bc) # echo -ne "Writing: $percent%\r" done # echo $data for ((addr=$start_addr; addr<$end_addr; addr+=4)); do data=$(dd if=/dev/mem bs=4 count=1 skip=$(($addr/4)) 2>/dev/null | hexdump -e '/4 "%08x\n"') if [ "$data_write" == "$data_read" ]; then match_count=$((match_count+1)) fi count=$((count+1)) # percent=$(echo "scale=2; $count * 100 / (($end_addr - $start_addr) / 4)" | bc) # echo -ne "Reading: $percent%\r" done #echo $data echo $data_read echo $data_write 如果data_read=55aa55aa,data_write=0x55AA55AA,那么该如何修改程序才能让程序输出PASS
要让程序输出PASS,需要将match_count与count进行比较。如果它们相等,说明所有写入的数据都被正确地读回,程序就可以输出PASS。因此,可以在第一个循环中,将写入数据的值改为data_read,即:
```
echo $data_read | dd of=/dev/mem bs=4 count=1 seek=$(($addr/8)) conv=notrunc 2>/dev/nul
```
然后,在第二个循环中,添加一个判断语句,如果match_count等于count,则输出PASS,如下所示:
```
if [ $match_count -eq $count ]; then
echo "PASS"
fi
```
完整代码如下:
```
start_addr=0x05877000
end_addr=0x3ffff000
data_write=0x55AA55AA
data_read=$(printf "%08x" $data_write)
count=0
match_count=0
for ((addr=$start_addr; addr<$end_addr; addr=addr+4)); do
echo $data_read | dd of=/dev/mem bs=4 count=1 seek=$(($addr/8)) conv=notrunc 2>/dev/nul
done
for ((addr=$start_addr; addr<$end_addr; addr+=4)); do
data=$(dd if=/dev/mem bs=4 count=1 skip=$(($addr/4)) 2>/dev/null | hexdump -e '/4 "%08x\n"')
if [ "$data_read" == "$data" ]; then
match_count=$((match_count+1))
fi
count=$((count+1))
done
if [ $match_count -eq $count ]; then
echo "PASS"
fi
```