我需要在MySQL或C ++中以Hash(SHA256)格式验证日期。
例如:date1 < date2
或date1 > date2
。
我在MySQL中有这个查询:
SELECT SHA1(CURDATE()) -->'2017-09-06'
和
SELECT SHA1('2017-09-06') --> '34152f3661d73490ac89b0fe15cb3170aac06bb8'
SELECT SHA1('2017-09-07') --> '0b10f03fb245a6486d6ab5b25a2f050bf87093a5'
但是,如果我使用:
SELECT IF (SHA1('2017-09-06') <= SHA1('2017-09-07') ,'True','False') AS Test;
结果是False
,因此不正确!
答案 0 :(得分:-1)
不知道你为什么要这样做,但这里有适合你的解决方案。
这里有一些假设。
所以在psudocode中,你可以这样做。
date getDateFromHash(string inputHash) {
date startDate = '1911-01-01';
date endDate = '2017-12-31';
for(date checkDate = startDate; checkDate < endDate; checkDate + 1 day) {
if (sha1(checkDate) = inputHash) { return checkDate }
}
return null;
}
date firstDate = getDateFromHash("0b10f03fb245a6486d6ab5b25a2f050bf87093a5"); // 2017-09-07
date secondDate = getDateFromHash("34152f3661d73490ac89b0fe15cb3170aac06bb8"); // 2017-09-06
if (firstDate > secondDate) {
return true;
} else {
return false;
} // compare using default date operators
但老实说,就像评论所说的那样,没有散列日期值的重点。因此,如果你真的想要沿着这条路走下去,为什么我只是为你指出正确的方向,只为你指出了一个quud psudo代码。