0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 16
1

Sha1 && strtoupper, перевести код с PHP

06.03.2014, 20:55. Показов 1115. Ответов 11
Метки нет (Все метки)

Прошу помощи у знающих людей:
Есть PHP код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$connect = mysql_connect("localhost","root","root");
$db = mysql_select_db("opg");
mysql_query("SET NAMES CP1251");
$ulogin = $_POST['login'];
$pass = $_POST['pass'];
$sph =  sha1(strtoupper("$ulogin") .":". strtoupper("$pass"));
$info = mysql_query("SELECT COUNT(*) FROM `user` WHERE `username`='$ulogin' AND `pass`='$sph'");
$info = mysql_result($info,0);
if($info=='0'){
echo "Данный пользователь не найден";
}else{
echo "Успешно";
}
Как мне все это реализовать в C#?
Благодарю заранее...
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2014, 20:55
Ответы с готовыми решениями:

Валидатор указывает на ошибочную ссылку, вместо & нужно & amp
Использую браузер FF 8.0, на нем установлен HTML Vallidator. Так вот этот валидатор ругается типо я...

Нужен драйвера, код PCI\VEN_1039&DEV_7012&SUBSYS_0C98105B&REV_A0\3&B1BFB68&0&17
всем привет !! уменя нет звука нужен драйвер код...

query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так?
упростил для краткости запрос. в чем ошибка? RecSet - это коннекшн. query='SELECT * FROM resume...

error '80020009' Îøèáêà. /lalala/profile.asp, line 28
При простейшем и сто раз работавшем скрипте, вылетает ошибка! след. содержания error...

11
Master of Orion
Эксперт .NET
6087 / 4943 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.03.2014, 22:18 2
Narko, набрать в гугле mysql C#, подключить нужные сборки (какие - см. на офф сайте либо в NuGet), после этого скопировать код из FAQ на сайте того же MySQL, посвященному mysql C#.
1
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 16
06.03.2014, 22:29  [ТС] 3
Я уже пробовал, тот код который я нашел на sha1 && strtoupper не корректно работает.
Вот код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        string sha1(string input)
        {
            byte[] hash;
            using (var sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider())
                hash = sha1.ComputeHash(Encoding.Unicode.GetBytes(input));
            var sb = new StringBuilder();
            foreach (byte b in hash) sb.AppendFormat("{0:x2}", b);
            return sb.ToString();
        }
        static string strtoupper(string chaine)
        {
            return chaine.ToUpper();
        }
При выполнении данного кода:

C#
1
string loadslf = sha1(strtoupper("Narko94")+":"+strtoupper("ghbdtn"));
Я получаю: 6a7d2e768aca748e15f515e827b75fa17faeb302
А должно быть: 75032b3d0dc42e80b2b41bbc6351f71f5ed751f6

Во 2ых, я не могу не как реализовать данный mysql запрос, точнее реализовать могу, тот же эффект, что и в php не могу получить в C#.

PHP
1
$info = mysql_result($info,0); (Кол-во найденных данных по запросу)
0
Master of Orion
Эксперт .NET
6087 / 4943 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.03.2014, 22:35 4
Narko, ну простой способ посмотреть начет linqtosql для mysql. Для этого нужно только подключение сделать вроде как.

Далее. Сохраните обе строчки (можно в файл) и сравните посимвольно или побайтово. Где-то лишний пробел, не та кодировка или еще какая-нибудь фигня.

Добавлено через 3 минуты
Алсо так посимпатичнее:
C#
1
2
3
4
5
6
7
        static string Sha1(string input)
        {
            byte[] hash;
            using (var sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider())
                hash = sha1.ComputeHash(Encoding.Unicode.GetBytes(input));
            return string.Join(string.Empty, hash.Select(x => x.ToString("X")));
        }
1
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 16
06.03.2014, 22:39  [ТС] 5
Здесь англ. символы... Кодировка не повлияет (вроде как).
+ к тому же не могли бы вы предоставить пример linqtosql, а то я реально нуб в C#, вот и прошу помощи.
Только не нужно мне кидать сылку на поисковик и т.д.

Добавлено через 1 минуту
С вашим кодом получилось все тоже самое, только все символы большие (CAPS).
Результат не изменился...

Добавлено через 1 минуту
У тебя случайно нету скайпа?
0
Master of Orion
Эксперт .NET
6087 / 4943 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.03.2014, 22:43 6
Narko, пример с l2s скину позже.
Скайп конечно есть, только я разговариваю
1
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 16
06.03.2014, 22:47  [ТС] 7
Там быстрее переписываться)) Можешь скинуть плиз?
0
Master of Orion
Эксперт .NET
6087 / 4943 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.03.2014, 22:49 8
Лучший ответ Сообщение было отмечено Narko как решение

Решение

Narko, могу, но лучше тут, т.к. потом кто-нибудь набредет в поиске на эту тему и ему помощь будет. Даже на мои вопросы иногда нахожу попытки ответа на киберфоруме, он довольно высоко в рейтинге (правда, как правило, ответ неправильный и неполный, но что уж поделать, если тематика уже довольно сложная)
1
6242 / 3543 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
08.03.2014, 13:01 9
А зачем это делать в C#? UPPER / SHA1

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using MySql.Data.MySqlClient;
using System;
 
namespace Ghost
{
    class Program
    {
        static bool UserExists(string login, string password)
        {
            MySqlConnectionStringBuilder stringBuilder =
                new MySqlConnectionStringBuilder();
            stringBuilder.Server = "localhost";
            stringBuilder.UserID = "root";
            stringBuilder.Password = "root";
            using (MySqlConnection connection = new MySqlConnection())
            {
                connection.ConnectionString = stringBuilder.ConnectionString;
                using (MySqlCommand command = connection.CreateCommand())
                {
                    command.CommandText = 
                        "SELECT COUNT(*) " + 
                        "FROM `user` " + 
                        "WHERE " + 
                            "`username` = @user AND " +
                            " `pass`=SHA1(UPPER(@user) + ':' + UPPER(@pass))";
                    command.Parameters.AddWithValue("@user", login);
                    command.Parameters.AddWithValue("@pass", password);
                    connection.Open();
                    return Convert.ToBoolean(command.ExecuteScalar());
                }
            }
        }
 
        static void Main(string[] args)
        {
            // UserExists("сиськи", "письки");
        }
    }
}
Работоспособность кода не проверял.
1
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 16
09.03.2014, 02:36  [ТС] 10
Петр у тебя есть скайп?

 Комментарий модератора 
Вам уже сделали замечание. Все вопросы решаются на форуме, он для того и создан.


Добавлено через 7 часов 36 минут
Спасибо всем кто помогал, особую благодарность выражаю Psilon.
0
pincet
09.03.2014, 11:22
  #11

Не по теме:


Цитата Сообщение от Петррр Посмотреть сообщение
command.CommandText =
@"SELECT COUNT(*)
FROM `user`
WHERE `username` = @user
AND `pass`=SHA1(UPPER(@user) + ':' + UPPER(@pass))";
так быстрее,не? ;)

0
6242 / 3543 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
09.03.2014, 11:33 12
pincet, понятия не имею, но то, что кода меньше, это однозначно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2014, 11:33

Помогите найти драйвера для pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2
pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2 Мультимедиа аудиоконтроллер ...

Мультимедиа контролер PCI\VEN_14F1&DEV_8800&SUBSYS_EA3D14F1&REV_05\4&25700A26&0&3020
Помогите пожалуйста найти драйвер на мультимедиа видеоконтролер ...

немогу найти драйвера на PCI\VEN_1039&DEV_7012&SUBSYS_810D1043&REV_A0\3&61AAA01&0&17
Мультимедиа аудиоконтроллер PCI\VEN_1039&DEV_7012&SUBSYS_810D1043&REV_A0\3&61AAA01&0&17

Драйвера на PCI\VEN_10B7&DEV_1700&SUBSYS_80EB1043&REV_12\4&2E98101C&0&28 F0
помогите плиз - вот ID: PCI\VEN_10B7&DEV_1700&SUBSYS_80EB1043&REV_12\4&2E98101C&0&28F0 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.