美文网首页
一道加密算法题

一道加密算法题

作者: 花生无翼 | 来源:发表于2020-08-28 14:09 被阅读0次

请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。

package com.ssm.simple.demo.algorithm;

import org.apache.commons.codec.binary.Hex;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 验证用户密码
 *
 * @Author peanutnowing
 * @Date 2020/8/26
 */
public class CheckPWDemo {
    /**
     * 密码验证
     * @param userId
     * @param password
     * @param encodedPassword
     * @return
     * @throws NoSuchAlgorithmException
     */
    public static Boolean checkPW(String userId, String password, String encodedPassword) throws NoSuchAlgorithmException {
        String encryptedStr = encodeBySHA256(userId+password);
        return encodedPassword.equals(encryptedStr);
    }

    /**
     * 加密
     * @param str
     * @return
     * @throws NoSuchAlgorithmException
     */
    private static String encodeBySHA256(String str) throws NoSuchAlgorithmException {
        MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
        byte[] digestBytes = messageDigest.digest(str.getBytes());
        String digestStr = Hex.encodeHexString(digestBytes);
        return digestStr;
    }

    public static void main(String[] args) throws NoSuchAlgorithmException {
        String userId = "10001";
        String pwd = "asdf1234";
        System.out.println(encodeBySHA256(userId+pwd));
        Boolean result = checkPW(userId, pwd, encodeBySHA256(userId+pwd));
        System.out.printf("result:"+ result);
    }
}

相关文章

  • 一道加密算法题

    请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String...

  • 生活,干活,生生的干好答题这一道活。

    活好,什么意思? 生活,一道题,一道必选题。生活,一道题,一道必选题。 多为客观选择题,少为主观表述题。 客观少有...

  • 名牌大学生的成功

    我再多会做一道题, 再多会做另一道题, 再多会做另另一道题, 多会做的每一道题, 都是在为高考加分, 多学点,再多...

  • 无关爱情 - 恋爱就像一张考卷

    选择题 判断题 填空题 论证题 计算题 最后一道大题 你说 最后一道大题你不会 有点郁闷 我只会最后一道大题……

  • iOS开发——从一道题看Delegate

    iOS开发——从一道题看Delegate iOS开发——从一道题看Delegate

  • RSA 加密算法主要公式

    从一道计算题开始了解 RSA 非对称加密算法的主要公式。 计算问题 下面是一道关于 RSA 计算的问题,比较简单,...

  • RSA 加密算法主要公式 - 草稿

    从一道计算题开始了解 RSA 非对称加密算法的主要公式。 计算问题 下面是一道关于 RSA 计算的问题,比较简单,...

  • 生活是什么?

    生活是什么?生活就是一道又一道的无解题!是语文题,是哲理题,是证明题!但不是数学题!因为数学题有唯一的答案!如果生...

  • 暮省

    今天做语文预习单的最后一道题。对我有很大的启发。我发现那道题不只是一道思考题题。而是一道关于人生的问题。当我...

  • 多做一点小努力 20220930 晨间日记

    人生的本质,它不是一道加法题,而是一道乘法题。 我们经常会觉得人生是一道加法题,你的财富需要每天朝九晚五工作好好积...

网友评论

      本文标题:一道加密算法题

      本文链接:https://www.haomeiwen.com/subject/wrdlsktx.html