У нас есть скрипт, написанный на powershell для получения некоторой информации из пользовательского терминала.И создали SHA1 этой информации, просто чтобы проверить целостность результата.
На стороне сервера, где мы получаем эту информацию от нескольких терминалов, мы проверяем каждый результат, и эта сторона сценария пишется на Ruby.
Теперь проблема в том, что оба эти сценария даютдругой хэш SHA1, и я не уверен, где я делаю ошибку.
Код Powershell, как указано ниже.
$String = "
Directory: D:\OneDrive -
ControlCase\jt-work\evidance-collection\evidances-text\PCI_Evidences_CCIN-CAS-VKAUS\evidences
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2019-01-16 1:14 PM 7073 21_to_calc_hash.ps1
-a--- 2019-01-16 1:15 PM 9973 CCIN-CAS-VKAUS_pci_evidence_Q21.txt
-a--- 2019-01-15 9:37 PM 67399 CCIN-CAS-VKAUS_pci_evidence_Q23.txt
-a--- 2019-01-15 9:37 PM 5055 CCIN-CAS-VKAUS_pci_evidence_Q34.txt
-a--- 2019-01-15 9:38 PM 10820 CCIN-CAS-VKAUS_pci_evidence_Q45.txt
-a--- 2019-01-15 9:38 PM 13129 CCIN-CAS-VKAUS_pci_evidence_Q50.txt
-a--- 2019-01-15 9:38 PM 7163 CCIN-CAS-VKAUS_pci_evidence_Q67.txt
-a--- 2019-01-15 9:39 PM 4301 CCIN-CAS-VKAUS_pci_evidence_Q69.txt
-a--- 2019-01-15 9:39 PM 2900 CCIN-CAS-VKAUS_pci_evidence_Q81.txt
"
Function Get-Hash([String] $String)
{
$StringBuilder = New-Object System.Text.StringBuilder
[System.Security.Cryptography.HashAlgorithm]::Create("sha1").ComputeHash([System.Text.Encoding]::UTF8.GetBytes($String))|%{
[Void]$StringBuilder.Append($_.ToString("x2"))
}
$StringBuilder.ToString()
}
Get-Hash($String)
и этот хеш мы получаем для приведенного выше сценария e7c527068445c52635287b9ecf55566c2564d595
ниже - скрипт Ruby
require 'digest'
varj = "
Directory: D:\OneDrive -
ControlCase\jt-work\evidance-collection\evidances-text\PCI_Evidences_CCIN-CAS-VKAUS\evidences
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2019-01-16 1:14 PM 7073 21_to_calc_hash.ps1
-a--- 2019-01-16 1:15 PM 9973 CCIN-CAS-VKAUS_pci_evidence_Q21.txt
-a--- 2019-01-15 9:37 PM 67399 CCIN-CAS-VKAUS_pci_evidence_Q23.txt
-a--- 2019-01-15 9:37 PM 5055 CCIN-CAS-VKAUS_pci_evidence_Q34.txt
-a--- 2019-01-15 9:38 PM 10820 CCIN-CAS-VKAUS_pci_evidence_Q45.txt
-a--- 2019-01-15 9:38 PM 13129 CCIN-CAS-VKAUS_pci_evidence_Q50.txt
-a--- 2019-01-15 9:38 PM 7163 CCIN-CAS-VKAUS_pci_evidence_Q67.txt
-a--- 2019-01-15 9:39 PM 4301 CCIN-CAS-VKAUS_pci_evidence_Q69.txt
-a--- 2019-01-15 9:39 PM 2900 CCIN-CAS-VKAUS_pci_evidence_Q81.txt
"
varj_Encoded = varj.encode(Encoding::ISO_8859_1)
puts Digest::SHA1.hexdigest(varj_Encoded)
, а вот SHA1, который мы получили из этого скрипта.77f7cecb2b75c16b1e929a56b644fad7d7f95965
Теперь условие здесь, я не могу внести / предложить какие-либо изменения в части Powershell.Мне нужно настроить код ruby, чтобы он совпадал.