Этот вопрос в security.stackexchange является хорошим обсуждением bcrypt и PBKDF2 - . Специалисты по безопасности рекомендуют bcrypt для хранения паролей ?
Ключ состоит в том, что только хеш-функция не предотвратит атаку предкоммутации (например, таблицу радуги). И добавление соли не защитит вас от словаря или атаки грубой силы. Вы гораздо лучше используете bcrypt или PBKDF2, чем создаете свою собственную схему с помощью алгоритма хеширования.
При публикации образцов данных в формате csv либо используйте формат с разделителями-запятыми - или-
столбцовое представление после Import-Csv.
## Q:\TEst\2019\01\17\SO_54236818.ps1
$Mastercsv = Import-Csv ".\CSV1.csv"
$Productinfo = Import-Csv ".\CSV2.csv"
foreach($record in $Mastercsv){
$record.LaptopDesktop = ($Productinfo|Where-Object Code -eq $record.code).Type
}
$Mastercsv | Format-Table -Auto
Пример вывода
Computer Product Code Country Department LaptopDesktop
-------- ------- ---- ------- ---------- -------------
Com1 EliteDesk 705 HP2190 AU FN D
Com2 EliteBook 830 HP1023 AU IT L
Com3 EliteBook 830 HP1023 FR FN L
Com4 Zbook 15U HP2020 IN FN L
Com5 OptiPlex 3010 DL1721 FR FN D
Com6 unknown na DE IT
Я думаю, тот факт, что вы только что открыли файл для импорта, а затем попытаетесь экспортировать его снова, сбивает с толку PowerShell. В любом случае, вероятно, не стоит перезаписывать файл таким образом, так как это может привести к повреждению. Вероятно, лучше написать в отдельный CSV, например, так:
function Update-SystemType {
Import-Csv ".\CSV2.csv" | ForEach-Object {$codeHash = @{}}{
$codeHash[ Я думаю, тот факт, что вы только что открыли файл для импорта, а затем попытаетесь экспортировать его снова, сбивает с толку PowerShell. В любом случае, вероятно, не стоит перезаписывать файл таким образом, так как это может привести к повреждению. Вероятно, лучше написать в отдельный CSV, например, так:
[110] Если вы действительно хотите заменить оригинал впоследствии, то вы можете переписать его следующим образом:
Move-Item -Path .\CSV3.csv -Destination .\CSV1.csv -Force
.Code] = Я думаю, тот факт, что вы только что открыли файл для импорта, а затем попытаетесь экспортировать его снова, сбивает с толку PowerShell. В любом случае, вероятно, не стоит перезаписывать файл таким образом, так как это может привести к повреждению. Вероятно, лучше написать в отдельный CSV, например, так:
[110] Если вы действительно хотите заменить оригинал впоследствии, то вы можете переписать его следующим образом:
Move-Item -Path .\CSV3.csv -Destination .\CSV1.csv -Force
}{}
Import-Csv ".\CSV1.csv" |
ForEach-Object {
Я думаю, тот факт, что вы только что открыли файл для импорта, а затем попытаетесь экспортировать его снова, сбивает с толку PowerShell. В любом случае, вероятно, не стоит перезаписывать файл таким образом, так как это может привести к повреждению. Вероятно, лучше написать в отдельный CSV, например, так:
[110] Если вы действительно хотите заменить оригинал впоследствии, то вы можете переписать его следующим образом:
Move-Item -Path .\CSV3.csv -Destination .\CSV1.csv -Force
.LaptopDesktop = $(if($codeHash.ContainsKey( Я думаю, тот факт, что вы только что открыли файл для импорта, а затем попытаетесь экспортировать его снова, сбивает с толку PowerShell. В любом случае, вероятно, не стоит перезаписывать файл таким образом, так как это может привести к повреждению. Вероятно, лучше написать в отдельный CSV, например, так:
[110] Если вы действительно хотите заменить оригинал впоследствии, то вы можете переписать его следующим образом:
Move-Item -Path .\CSV3.csv -Destination .\CSV1.csv -Force
.Code)){$codeHash[ Я думаю, тот факт, что вы только что открыли файл для импорта, а затем попытаетесь экспортировать его снова, сбивает с толку PowerShell. В любом случае, вероятно, не стоит перезаписывать файл таким образом, так как это может привести к повреждению. Вероятно, лучше написать в отдельный CSV, например, так:
[110] Если вы действительно хотите заменить оригинал впоследствии, то вы можете переписать его следующим образом:
Move-Item -Path .\CSV3.csv -Destination .\CSV1.csv -Force
.Code].Type}else{"Unknown"})
Я думаю, тот факт, что вы только что открыли файл для импорта, а затем попытаетесь экспортировать его снова, сбивает с толку PowerShell. В любом случае, вероятно, не стоит перезаписывать файл таким образом, так как это может привести к повреждению. Вероятно, лучше написать в отдельный CSV, например, так:
[110] Если вы действительно хотите заменить оригинал впоследствии, то вы можете переписать его следующим образом:
Move-Item -Path .\CSV3.csv -Destination .\CSV1.csv -Force
}
}
Update-SystemType |
Export-Csv '.\CSV3.csv' -Force -NoTypeInformation
Если вы действительно хотите заменить оригинал впоследствии, то вы можете переписать его следующим образом:
Move-Item -Path .\CSV3.csv -Destination .\CSV1.csv -Force