本文目录一览:
- 1、我想用户java replaceALL替换手机号码中间的四个数字,中间的正则表达式不知道怎么写,哪位大师帮帮忙啊
- 2、java加密的几种方式
- 3、怎么隐藏手机号码中间四位
- 4、用java做数字加密,思路如下:输入一个四位数,每位相加,1~9分别代表ASC中的a~i
- 5、java输入一个6位数的电话号码传入方法,方法返回加密后的号码,使用stringbuffe
我想用户java replaceALL替换手机号码中间的四个数字,中间的正则表达式不知道怎么写,哪位大师帮帮忙啊
String phone = "12345678909";
String reg = "^(.{3}).{4}(.+)$";
phone = phone.replaceAll(reg, "$1****$2");
java加密的几种方式
基本的单向加密算法:
BASE64 严格地说,属于编码格式,而非加密算法
MD5(Message Digest algorithm 5,信息摘要算法)
SHA(Secure Hash Algorithm,安全散列算法)
HMAC(Hash Message Authentication Code,散列消息鉴别码)
复杂的对称加密(DES、PBE)、非对称加密算法:
DES(Data Encryption Standard,数据加密算法)
PBE(Password-based encryption,基于密码验证)
RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)
DH(Diffie-Hellman算法,密钥一致协议)
DSA(Digital Signature Algorithm,数字签名)
ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)
代码参考:
/**
* BASE64加密
*
* @param key
* @return
* @throws Exception
*/
public static String encryptBASE64(byte[] key) throws Exception {
return (new BASE64Encoder()).encodeBuffer(key);
}
/**
* MD5加密
*
* @param data
* @return
* @throws Exception
*/
public static byte[] encryptMD5(byte[] data) throws Exception {
MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);
md5.update(data);
return md5.digest();
}
/**
* SHA加密
*
* @param data
* @return
* @throws Exception
*/
public static byte[] encryptSHA(byte[] data) throws Exception {
MessageDigest sha = MessageDigest.getInstance(KEY_SHA);
sha.update(data);
return sha.digest();
}
}
/**
* 初始化HMAC密钥
*
* @return
* @throws Exception
*/
public static String initMacKey() throws Exception {
KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC);
SecretKey secretKey = keyGenerator.generateKey();
return encryptBASE64(secretKey.getEncoded());
}
/**
* HMAC加密
*
* @param data
* @param key
* @return
* @throws Exception
*/
public static byte[] encryptHMAC(byte[] data, String key) throws Exception {
SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC);
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
return mac.doFinal(data);
}
怎么隐藏手机号码中间四位
数据时代,个人信息泄露越来越严重。
正因如此,每个公司更加注重员工信息的保护,有时候我们需要打印一些员工的个人信息,其中包含手机号、个人身份证号码,这些肯定是要进行加密处理的。
如何隐藏手机号中间4位数字,5种方法推荐,不管你是Excel哪一版本、或者是WPS,总有一种方法适合你~
left+right
C2单元格输入:=LEFT(B2,3)"****"RIGHT(B2,4)

说明:left函数从文本字符串左侧截取固定长度字符串,right函数从文本字符串右侧截取固定长度字符串,再利用连接符连接起来。
mid函数
C2单元格输入:=MID(B2,1,3)"****"MID(B2,8,4)
mid函数与left+right函数有异曲同工之妙,只不过的mid函数可以从一个文本字符串任一位置截取任一长度的字符。

说明:mid(要截取的文本字符串,开始位置,截取长度)
replace函数
C2单元格内输入:=REPLACE(B2,4,4,"****")

说明:replace函数将一个字符串中的部分字符用另一个字符替换,replace(要替换的字符串,开始位置,长度,新的字符串)
substitute函数
C2单元格内输入:=SUBSTITUTE(B2,MID(B2,4,4),"****",1)
substitute函数功能与replace函数功能一致,也是将字符串中的部分字符串以新的字符串替换。
唯一不同的是substitute函数需要明确输入要替换的字符串是什么,而不能像replace函数那样指定位置即可。

说明:substitute(文本单元格,要被替换的字符串,新的字符串,替换第几个)。
第四个参数"替换第几个",是指被替换的字符串可能存在重复出现的情况,这里可以指定替换的位置(第一次出现or第二次出现等等)
Ctrl+E(推荐)
手动输入第一个员工隐私化后的手机号码,接着选中所有需要填充的单元格,同时按下Ctrl+E两键,完成填充。
用java做数字加密,思路如下:输入一个四位数,每位相加,1~9分别代表ASC中的a~i
import java.util.Scanner;
public class Encpryt {
public Encpryt() {
Scanner scan = new Scanner(System.in);
System.out.println("输入一个四位数:");
String str = scan.next();
while(str != "q"){
if (str.length()!=4) {
System.out.println("您输入的不是4位的数字请重新输入");
str = scan.next();
continue;
}
System.out.println("加密后的数是:");
char[] ns = new char[4];
for(int i = 0; i 4; i++){
ns[i] = str.charAt(i);
System.out.println(ns[i] -'0' + 'a' - 1);
}
System.out.println("输入一个四位数:");
str = scan.next();
}
}
/** * @param args
*/
public static void main(String[] args) {
new Encpryt();
}
}
java输入一个6位数的电话号码传入方法,方法返回加密后的号码,使用stringbuffe
package com;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Yugi
{
public static final String CHARSET = "UTF-8";
private String sign(String prestr)
{
StringBuffer buffer = new StringBuffer(32);
try
{
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] t = md5.digest(prestr.getBytes(CHARSET));
for(int i = 0; i t.length; i++)
{
buffer.append(Byte.toString(t[i]));
}
return buffer.toString();
}
catch(NoSuchAlgorithmException e)
{
e.printStackTrace();
}
catch(UnsupportedEncodingException e)
{
e.printStackTrace();
}
return prestr;
}
public static void main(String[] args)
{
Yugi yugi = new Yugi();
System.out.println(yugi.sign("123456"));
}
}