How to generate sha256 hash from text?

davidusex882

Client
Регистрация
23.07.2021
Сообщения
3
Благодарностей
0
Баллы
1
Hello
Can anyone help me how to generate sha256 hash from text? Is there any zennoposter script available?

I have the text in the variable - info_text
And I would like to generate a sha256 hash from this text and store it in a variable - sha256

Sample text: codes[0]=test_code
Hash sha256 : dd5da85bc29a40be455e784a245ed62366a30ee6e865a54f0ee9363f8db3c260

Please help
Best regards
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 781
Благодарностей
2 442
Баллы
113
Sample text: codes[0]=test_code
Hash sha256 : dd5da85bc29a40be455e784a245ed62366a30ee6e865a54f0ee9363f8db3c260
C#:
string infoText = "codes[0]=test_code";
string sha256 = string.Empty;
using (var sha256Hash = System.Security.Cryptography.SHA256.Create()) {
    byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(infoText));
    var sb = new StringBuilder();
    for (int i = 0; i < bytes.Length; i++)  sb.Append(bytes[i].ToString("x2"));
    sha256 =  sb.ToString();
}
return sha256;
103657
 
  • Спасибо
Реакции: davidusex882

davidusex882

Client
Регистрация
23.07.2021
Сообщения
3
Благодарностей
0
Баллы
1
C#:
string infoText = "codes[0]=test_code";
string sha256 = string.Empty;
using (var sha256Hash = System.Security.Cryptography.SHA256.Create()) {
    byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(infoText));
    var sb = new StringBuilder();
    for (int i = 0; i < bytes.Length; i++)  sb.Append(bytes[i].ToString("x2"));
    sha256 =  sb.ToString();
}
return sha256;
Посмотреть вложение 103657
Thank you very much!
This works for normal text but also needs base64 text and unfortunately it generates wrong sha256 hash. Maybe it's the fault of UTF8 encoding?
I noticed that when there is a plus sign + in the base64 code, it causes some problem and generates the wrong sha256 hash.

For example, I want to encode this string and it works fine:
C#:
data=R0lGODdhAQABAPAAAP8AAAAAACwAAAAAAQABAAACAkQBADs==&filename=test.jpgd778b5010e5x88c65bb0caa73xb427fe
But when I use different base64 code it doesn't work because it generates wrong hash sha256 and some character probably creates this problem:
C#:
data=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&filename=test.jpgd778b5010e5x88c65bb0caa73xb427fe
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 781
Благодарностей
2 442
Баллы
113
I noticed that when there is a plus sign + in the base64 code, it causes some problem and generates the wrong sha256 hash.
C#:
string base64 = project.Variables["base64"].Value; // base64 yes +
string file = project.Variables["file"].Value;

string base64String = Convert.ToBase64String(Convert.FromBase64String(base64),
    Base64FormattingOptions.None); // not plus

string infoText = string.Format("data={0}&filename={1}",base64,file);
string sha256 = string.Empty;
using (var sha256Hash = System.Security.Cryptography.SHA256.Create()) {
    byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(infoText));
    var sb = new StringBuilder();
    for (int i = 0; i < bytes.Length; i++)  sb.Append(bytes[i].ToString("x2"));
    sha256 =  sb.ToString();
}
return sha256;
 

davidusex882

Client
Регистрация
23.07.2021
Сообщения
3
Благодарностей
0
Баллы
1
C#:
string base64 = project.Variables["base64"].Value; // base64 yes +
string file = project.Variables["file"].Value;

string base64String = Convert.ToBase64String(Convert.FromBase64String(base64),
    Base64FormattingOptions.None); // not plus

string infoText = string.Format("data={0}&filename={1}",base64,file);
string sha256 = string.Empty;
using (var sha256Hash = System.Security.Cryptography.SHA256.Create()) {
    byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(infoText));
    var sb = new StringBuilder();
    for (int i = 0; i < bytes.Length; i++)  sb.Append(bytes[i].ToString("x2"));
    sha256 =  sb.ToString();
}
return sha256;
This script works the same as the first script and generates the same wrong sha256 hash. Can you help me?
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 781
Благодарностей
2 442
Баллы
113
This script works the same as the first script and generates the same wrong sha256 hash. Can you help me?
How do you know if the hash is wrong? Maybe the problem is in the method of data transfer, for example, when sending a POST request, the data is distorted by the client - and the server already receives other data, and the hash is generated from not corrupted data. Need a more complete picture to try to help you.
 

Кто просматривает тему: (Всего: 4, Пользователи: 0, Гости: 4)