Необходимо хранить в базе данных md5 хеш. Но хранить его нужно особым способом, чтобы можно было по нему сделать индекс (вариант с varchar не предлагать). Для этого надо сконвертить md5 хэш, представленный в виде byte[] (16 байт) в decimal.
Вопрос знатокам:
Как сконвертить byte[] размером 16 байт в decimal?
Здравствуйте, Аноним, Вы писали:
А>Предисловие.
А>Необходимо хранить в базе данных md5 хеш. Но хранить его нужно особым способом, чтобы можно было по нему сделать индекс (вариант с varchar не предлагать). Для этого надо сконвертить md5 хэш, представленный в виде byte[] (16 байт) в decimal.
А>Вопрос знатокам:
А>Как сконвертить byte[] размером 16 байт в decimal?
The Decimal value type represents decimal numbers ranging from positive 79,228,162,514,264,337,593,543,950,335 to negative 79,228,162,514,264,337,593,543,950,335
Может, какждый байт хеша в циферку десимала перевести?
Здравствуйте, Pavel M., Вы писали:
А>>Как сконвертить byte[] размером 16 байт в decimal?
PM>
PM>The Decimal value type represents decimal numbers ranging from positive 79,228,162,514,264,337,593,543,950,335 to negative 79,228,162,514,264,337,593,543,950,335
PM>Может, какждый байт хеша в циферку десимала перевести?
Здравствуйте, <Аноним>, Вы писали:
А>Как сконвертить byte[] размером 16 байт в decimal?
private static decimal Bytes2Decimal(byte[] bytes)
{
MemoryStream ms = new MemoryStream(bytes);
BinaryReader reader = new BinaryReader(ms);
return reader.ReadDecimal();
}
private static byte[] Decimal2Bytes(decimal d)
{
byte[] bytes = new byte[16];
MemoryStream ms = new MemoryStream(bytes);
BinaryWriter writer = new BinaryWriter(ms);
writer.Write(d);
writer.Flush();
ms.Flush();
return bytes;
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: byte[] to decimal
От:
Аноним
Дата:
27.02.07 14:13
Оценка:
Известно, что размер decimal 128 бит. Размер md5 хеша тоже 128 бит.
Кто-нибудь может привести кусок кода, как привести из одного в другое? Я пока пробую, у меня что-то не выходит. Если получится, напишу.
Re[2]: byte[] to decimal
От:
Аноним
Дата:
27.02.07 14:22
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, <Аноним>, Вы писали:
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Pavel M., Вы писали:
А>>>Как сконвертить byte[] размером 16 байт в decimal?
PM>>
PM>>The Decimal value type represents decimal numbers ranging from positive 79,228,162,514,264,337,593,543,950,335 to negative 79,228,162,514,264,337,593,543,950,335
PM>>Может, какждый байт хеша в циферку десимала перевести?
L>Не всякий байт влезет в циферку.
Здравствуйте, Аноним, Вы писали:
А>Предисловие.
А>Необходимо хранить в базе данных md5 хеш. Но хранить его нужно особым способом, чтобы можно было по нему сделать индекс (вариант с varchar не предлагать). Для этого надо сконвертить md5 хэш, представленный в виде byte[] (16 байт) в decimal.
А>Вопрос знатокам:
А>Как сконвертить byte[] размером 16 байт в decimal?
На уя козе баян? Храни хэш без всяких преобразований, и строй на здоровье по нему индекс. Я не знаю, что за СУБД у тебя, но если допустим, MS SQL 200x, то тип binary(16) то что надо.