简易加密工具类

本文介绍了一个简单的加密工具类,该工具类使用MD5和SHA算法对登录密码进行加密,并将其安全地存储在数据库中。通过二次加密的方式进一步提高密码安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个简单的加密工具类,可以使自己写的登录密码加密后放入数据库,使别人在没有加密类时无法识别出密码,来保证自己密码的安全

package com.yc.jsp.util;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 加密工具类
 * md5加密出来的长度是32位
 * sha加密出来的长度是40位
 */
public class Encrypt {
    /**
     * 测试
     */
    public static void main(String[] args) {
        /*// md5加密测试
        String md5_1 = md5("a");
        String md5_2 = md5("1");

        //System.out.println(md5_1 + "\n" + md5_2);
        // sha加密测试
        String sha_1 = sha("123456");
        String sha_2 = sha("abc");*/
        //System.out.println(sha_1 + "\n" + sha_2);

        System.out.println(Encrypt.md5AndSha("a"));
        //System.out.println(Encrypt.md5("12345678"));
        //System.out.println(Encrypt.sha("aaaaaaaa"));


    }

    /**
     * 加密
     * 
     * @param inputText
     * @return
     */
    public static String e(String inputText) {
        return md5(inputText);
    }

    /**
     * 二次加密,应该破解不了了吧?
     * @param inputText
     * @return
     */
    public static String md5AndSha(String inputText) {
        return sha(md5(inputText));
    }

    /**
     * md5加密
     * @param inputText
     * @return
     */
    public static String md5(String inputText) {
        return encrypt(inputText, "md5");
    }

    /**
     * sha加密
     * @param inputText
     * @return
     */
    public static String sha(String inputText) {
        return encrypt(inputText, "sha-1");
    }

    /**
     * md5或者sha-1加密
     * 
     * @param inputText
     *            要加密的内容
     * @param algorithmName
     *            加密算法名称:md5或者sha-1,不区分大小写
     * @return
     */
    private static String encrypt(String inputText, String algorithmName) {
        if (inputText == null || "".equals(inputText.trim())) {
            throw new IllegalArgumentException("请输入要加密的内容");
        }
        if (algorithmName == null || "".equals(algorithmName.trim())) {
            algorithmName = "md5";
        }
        String encryptText = null;
        try {
            MessageDigest m = MessageDigest.getInstance(algorithmName);
            m.update(inputText.getBytes("UTF8"));
            byte s[] = m.digest();
            // m.digest(inputText.getBytes("UTF8"));
            return hex(s);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return encryptText;
    }

    /**
     * 返回十六进制字符串
     * @param arr
     * @return
     */
    private static String hex(byte[] arr) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < arr.length; ++i) {
            sb.append(Integer.toHexString((arr[i] & 0xFF) | 0x100).substring(1, 3));
        }
        return sb.toString();
    }

}

测试方法已经写在代码中了。

Simple DNSCrypt 是一个用于配置 DNS 安全代理的程序,它适用于 Windows 操作系统,您只需运行该软件并执行一些简单的操作即可。我认为每个人都不会担心,在互联网上工作时,您担心安全性,因为您的机密信息可以公开,这反过来又可能意味着数据拦截的可能性。要保护有很多方法,其中一种方式就是以这个方案的形式出现在你面前。应立即注意,为了正确操作,该实用程序需要 Internet 连接。 Simple DNSCrypt 中文版Simple DNSCrypt 中文版 安装过程不会占用您的大量时间,至少在此版本中不会安装额外的任何内容。在正常启动 Simple DNSCrypt 后你会发现一个相当清晰的用户界面,在右上角可以设置语言为简体中文。但我想你注意到它的水平,想要留下最好的,但总的来说,很清楚什么是利害关系。当然,新手可能无法立即弄明白,因为仍然需要对了解网络是如何工作的。 因此,简单地说,Simple DNSCrypt 软件将允许您加密 DNS 流量,这将改善您的安全性和隐私,不允许其他人跟踪您。要工作,您只需要使用主识别器,如果这还不够,您可以启用和配置辅助识别器。因此,我们得出结论,该程序为我们提供了二层加密。通过配置两个加密选项之一,您可以从列表中选择收藏夹或更合适的服务器。 有高级选项,我不会写它们,你可以看一下截图,当然,由于翻译可能会有一些误解,但我认为你可以搞清楚。总而言之,您有一个相当简单易用的应用程序,可以让您毫无问题地加密 DNS 流量,从而通过防止攻击者获取您的信息来提高您的网络安全性,这是一个很大的优势。关于外观,它看起来不错,所有功能都很清晰,它只是选择服务器,输入一些值并使用。 Simple DNSCrypt 是一款 Windows 平台下 DNS 流量加密的开源工具,可阻止常见的 DNS 攻击,如重放攻击、观察攻击、时序攻击、中间人攻击和解析伪造攻击等,保护网络的数据安全。采用的 DNSCrypt 协议是认证 DNS 客户端和 DNS 解析器之间通信的协议。可以防止 DNS 欺骗,使用加密签名验证来自所选 DNS解析器的响应,并确保没有被篡改。Simple DNSCrypt 默认已内置了支持 DNSCrypt 服务器,开启服务会自动选择。此外还支持DNS缓存、阻止 IPv6、强制使用 TCP 流量等功能。 Simple DNSCrypt 系统需求 Windows 7 SP1 以上版本操作系统。 需要 .NET Framework 4.6.1。 您还需要:Visual Studio 2017 x64 或 x86 的 Microsoft Visual C ++ Redistributable
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值