关于nodejs中 废弃的加密方法crypto.createCipher('aes256', key) 使用golang实现

Hy
  • 1
新手上路,请多包涵

一个N年前的nodejs项目,其中一块对密码加密的代码使用的方法是废弃掉的,缺少盐值和加密模式,现在正在使用golang进行重构,不知道该怎么使用go实现下方的加密代码

// 此处是nodejs加密

createToken(src, timestamp, key) {
        const msg = src + '|' + timestamp;
        const cipher = crypto.createCipher('aes256', key);
        let enc = cipher.update(msg, 'utf8', 'hex');
        enc += cipher.final('hex');
        return enc;
    }

// 此处是nodejs解密

    parseToken(token, key) {
        const decipher = crypto.createDecipher('aes256', key);
        let dec;
        try {
            dec = decipher.update(token, 'hex', 'utf8');
            dec += decipher.final('utf8');
        } catch (err) {
            // console.error('[token] fail to decrypt token. %j', token);
            return null;
        }
        const ts = dec.split('|');
        if (ts.length !== 2) {
            // illegal token
            return null;
        }
        return {src: ts[0], timestamp: Number(ts[1])};
    }
回复
阅读 267
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏