Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mariadb SHA返回不同的结果i_Mariadb_Sha256 - Fatal编程技术网

Mariadb SHA返回不同的结果i

Mariadb SHA返回不同的结果i,mariadb,sha256,Mariadb,Sha256,我有一个填充了一些值的表,为了设置值,我使用了一个存储过程,该存储过程还计算了一个哈希函数并保存在数据库中。 在更新值的情况下,应重新计算哈希值。对于重新计算哈希,我使用以下过程: DELIMITER $$ CREATE PROCEDURE `sp_UpdateHash`(IN rkey int) Begin DECLARE AuthCode VarChar(10); SET @input = concat('SELECT r_ac into @AuthCode FROM table_

我有一个填充了一些值的表,为了设置值,我使用了一个存储过程,该存储过程还计算了一个哈希函数并保存在数据库中。 在更新值的情况下,应重新计算哈希值。对于重新计算哈希,我使用以下过程:

DELIMITER $$
CREATE PROCEDURE `sp_UpdateHash`(IN rkey int)
Begin
DECLARE AuthCode VarChar(10);

SET @input = concat('SELECT r_ac into @AuthCode
    FROM table_rec
    where r_key=',rkey);

PREPARE squery FROM @input;
EXECUTE squery;
SET @hashed = SHA2(@AuthCode,256);
select @hashed;
DEALLOCATE PREPARE squery;
end;
和仅用于计算散列的过程:

CREATE PROCEDURE `sp_GetHash`(IN AuthCode VarChar(10))
BEGIN
    DECLARE hashed VarChar(64);
    SET hashed = SHA2(AuthCode,256);
    select hashed as 'Hash';
END
AuthCode相同,但当我尝试在select命令后处理值时,哈希是不同的,因为我得到了错误的代码。如果我将两个哈希值与其他结果(例如,来自在线生成器的结果)进行比较,结果与第二个函数类似:sp_GetHash


你知道为什么吗?

问题出在一个字段中,该字段的编码与表不同,当我在查询中使用它时,它的大小不同。

我无法重现该问题,请参见。对于第二个问题,请简化为具有以下主体的函数:
RETURN SHA2(AuthCode,256)。第一道工序可以减半。