Hi Christian,
Is disk space/database size really a concern for your application? If not,
just storing in a varchar(64) makes your code simple.
On Thursday, 19 April 2012 18:50:29 UTC+2, Christian MICHON wrote:
>
> Ah... got it: SHA256 is equivalent to ruby's sha2, and not sha256 from
> openssl (this was completely wrong).
>
> In ruby:
> >> require 'digest/sha2'
> => true
> >> Digest::SHA2.hexdigest 'sha256'
> => "5d5b09f6dcb2d53a5fffc60c4ac0d55fabdf556069d6631545f42aa6e3500f2e"
>
> In H2:
> CALL HASH('SHA256', STRINGTOUTF8('sha256'), 1);
> gives:
> X'5d5b09f6dcb2d53a5fffc60c4ac0d55fabdf556069d6631545f42aa6e3500f2e'
> 5d5b09f6dcb2d53a5fffc60c4ac0d55fabdf556069d6631545f42aa6e3500f2e
>
> So we have a match.
>
> My 1st question still interests me: how to efficiently store this sha256
> in H2? Which would be a good data type?
>
> Regards,
> Christian
>
> On Thursday, April 19, 2012 6:37:01 PM UTC+2, Christian MICHON wrote:
>
>> Yes, I knew about it.
>>
>> Yet, this gives me 2 problems:
>> - increase of 32 char to 64 char for storing the hash. Maybe I should
>> store this in a different way, like binary to save half the space?
>> - I cannot figure out how to have the same results between hash() in H2
>> and sha256 from OpenSSL/ruby
>>
>> As said, I use ruby and in ruby OpenSSL::Digest::Digest.new("sha256") ==
>> "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
>>
>> Could you please show me how to get the same value using hash() in H2?
>>
>> I tried call hash('SHA256',stringtoutf8('sha256'),1) without success...
>>
>> Regards,
>> Christian
>>
>> On Thursday, April 19, 2012 6:04:36 PM UTC+2, Thomas Mueller wrote:
>>>
>>> Hi,
>>>
>>> H2 supports SHA256 natively, I would use it instead of MD5:
>>> http://h2database.com/html/functions.html#hash
>>>
>>> Regards,
>>> Thomas
>>>
>>>
>>>
>>>
>>> On Saturday, April 14, 2012, Christian MICHON wrote:
>>>
>>>> On Friday, April 13, 2012 9:51:52 PM UTC+2, Christian MICHON wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I need to detect repetitions and updates in (relatively) small H2
>>>>> tables.
>>>>>
>>>>> As such, I currently implemented using ruby and an external ORM a
>>>>> md5sum calculation of all the keys concatenated into a string following
>>>>> their natural order, which is stored back into a specific key.
>>>>>
>>>>> This involves a lot of communication with the H2 server, and I wish to
>>>>> have it done natively (using java itself).
>>>>> (...)
>>>>>
>>>>>
>>>> After many experiments, I finally cracked it.
>>>>
>>>> Sharing it here, in case someone else finds this useful one day...
>>>>
>>>> CREATE ALIAS MD5 FOR
>>>> "org.apache.commons.codec.digest.DigestUtils.md5Hex(java.lang.String)";
>>>> CREATE TABLE TEST(ID IDENTITY, NAME VARCHAR(255), MD5 VARCHAR(32) AS
>>>> MD5(NAME));
>>>> INSERT INTO TEST (NAME) VALUES('The quick brown fox jumps over the lazy
>>>> dog');
>>>> SELECT * FROM TEST ORDER BY ID;
>>>>
>>>> Really powerful tool this H2 db... Congratulations again...
>>>>
>>>> Christian
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "H2 Database" group.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msg/h2-database/-/UV44utlLiAYJ.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected].
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/h2-database?hl=en.
>>>>
>>>
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/h2-database/-/pV11vTiw2DoJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.