Двузначные правила для запоминания:
Итак, для этого HTML (вложенные div):
A
и этот начальный CSS:
#outer {
margin-top:10px;
background:blue;
height: 100px;
}
#inner {
margin-top:20px;
background:red;
height: 33%;
width: 33%;
}
Граница сжимается до max касательных полей и вложенных div «прижимает» к началу контейнера, например: ( См. его в jsFiddle. ) [/g6]
Но в тот момент, когда два поля разделены - границей или предшествующим контентом в контейнер, например, поля больше не касаются, поэтому они больше не сжимаются.
EG, немного, без разрыва белого пространства, например:
A
убивает коллапс: ( Смотрите, что в jsFiddle. ) [/g7]
Использование рамки вместо ведущего текста: ( Fiddle ) [/g8]
java.security.MessageDigest
Ваш друг. Звоните getInstance("MD5")
для получения дайджеста сообщения MD5, который можно использовать.
Возможно, вы захотите взглянуть на класс DigestUtils проекта кодека apache commons , который предоставляет очень удобные методы для создания дайджестов MD5 или SHA.
Нет необходимости делать это слишком сложным. DigestUtils отлично работает и позволяет вам комфортно работать с хэшами md5.
DigestUtils.md5Hex(_hash);
или
DigestUtils.md5(_hash);
Либо вы можете использовать любые другие методы шифрования, такие как sha или md.
MD5 прекрасно подходит, если Вам не нужна лучшая безопасность, и если Вы делаете что-то как проверка целостности файлов тогда, безопасность не является соображением. В таком как случай Вы могли бы хотеть считать что-то более простым и быстрее, такие как Adler32, который также поддерживается библиотеками Java.
resize
можно быть совершенно уверены, что внутренняя строка или isn' t завершенный пустым указателем, поскольку реализация требует. После вызова к resize
, в конце концов, у Вас должна быть допустимая строка n символов (дополненный нулевыми символами по мере необходимости). - Однако это показывает отсутствие понимания для std::string
класс: memcpy используется или из незнания или как дезинформированная попытка для производительности (из-за эти resize
, звонят, код заканчивает тем, что присвоил значения буферу дважды).
– UncleBens
31 December 2009 в 23:23
Смотрите на следующую ссылку, Пример получает Хеш MD5 предоставленного изображения: Хеш MD5 Изображения
Если Вы на самом деле хотите ответ назад как строку в противоположность массиву байтов, Вы могли бы всегда делать что-то вроде этого:
String plaintext = "your text here";
MessageDigest m = MessageDigest.getInstance("MD5");
m.reset();
m.update(plaintext.getBytes());
byte[] digest = m.digest();
BigInteger bigInt = new BigInteger(1,digest);
String hashtext = bigInt.toString(16);
// Now we need to zero pad it if you actually want the full 32 chars.
while(hashtext.length() < 32 ){
hashtext = "0"+hashtext;
}
MessageDigest
класс может предоставить Вам экземпляр обзора MD5.
При работе со строками и crypto классами быть уверенным всегда определяют кодирование, Вы хотите представление байта в. Если Вы просто будете использовать string.getBytes()
, то это будет использовать значение по умолчанию платформы. (Не все платформы используют те же значения по умолчанию)
import java.security.*;
..
byte[] bytesOfMessage = yourString.getBytes("UTF-8");
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(bytesOfMessage);
, Если у Вас есть много данных, смотрят на .update(byte[])
метод, который можно неоднократно называть. Тогда звоните .digest()
для получения получающегося хеша.
Ответ мороженого корректен, однако обратите внимание, что, если Вы абсолютно не должны использовать MD5 (например, вызванный на Вас для совместимости), лучшим выбором является SHA1, поскольку MD5 имеет слабые места к долгосрочному использованию.
я должен добавить, что SHA1 также имеет теоретические уязвимости, но не как серьезные. Текущее состояние искусства в хешировании - то, что существует много заменяющих хеш-функций кандидата, но ни один еще не появился в качестве стандартной лучшей практики для замены SHA1. Так, в зависимости от Ваших потребностей Вам было бы целесообразно сделать Ваш хеш-алгоритм настраивающимся, таким образом, он может быть заменен в будущем.