java-简单的手机号加密解密工具类

以下代码为加密解密工具类:

public class MobileNumberUtils {

    // 密钥,必须为16字节
    private static final String AES_KEY = "0123456789abcdef";

    /**
     * 加密手机号
     *
     * @param phoneNumber
     * @return
     */

    public static String encrypt(String phoneNumber) {
        try {
            if (phoneNumber == null || phoneNumber.length() != 11) {
                throw new IllegalArgumentException("电话号码无效");
            }
            Cipher cipher = Cipher.getInstance("AES");
            SecretKeySpec secretKeySpec = new SecretKeySpec(AES_KEY.getBytes(), "AES");
            cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
            byte[] encryptedBytes = cipher.doFinal(phoneNumber.getBytes());
            return Base64.getEncoder().encodeToString(encryptedBytes);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 解密手机号
     *
     * @param encryptedPhoneNumber
     * @return
     */
    public static String decrypt(String encryptedPhoneNumber) {
        try {
            if (encryptedPhoneNumber == null || encryptedPhoneNumber.isEmpty()) {
                throw new IllegalArgumentException("加密的电话号码无效");
            }
            Cipher cipher = Cipher.getInstance("AES");
            SecretKeySpec secretKeySpec = new SecretKeySpec(AES_KEY.getBytes(), "AES");
            cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
            byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedPhoneNumber));
            return new String(decryptedBytes);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

运行结果: 

  public static void main(String[] args) {
        String phoneNumber = "18569356552";
        String encryptedPhoneNumber = encrypt(phoneNumber);

        System.out.println("加密后的手机号:" + encryptedPhoneNumber);
        System.out.println("解密后的手机号:" + decrypt(encryptedPhoneNumber));
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个射手座的程序猿!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值