PHP中文名加密
<?php
function encryptName($name) {
$encrypt_name = '';
//判断是否包含中文字符
if(preg_match("/[\x{4e00}-\x{9fa5}]+/u", $name)) {
//按照中文字符计算长度
$len = mb_strlen($name, 'UTF-8');
//echo '中文';
if($len >= 3){
//三个字符或三个字符以上掐头取尾,中间用*代替
$encrypt_name = mb_substr($name, 0, 1, 'UTF-8') .str_repeat('*',$len-2). mb_substr($name, -1, 1, 'UTF-8');
} elseif($len === 2) {
//两个字符
$encrypt_name = mb_substr($name, 0, 1, 'UTF-8') . '*';
}
} else {
//按照英文字串计算长度
$len = strlen($name);
//echo 'English';
if($len >= 3) {
//三个字符或三个字符以上掐头取尾,中间用*代替
$encrypt_name = substr($name, 0, 1) .str_repeat('*',$len-2). substr($name, -1);
} elseif($len === 2) {
//两个字符
$encrypt_name = substr($name, 0, 1) . '*';
}
}
return $encrypt_name;
}
echo encryptName('张三').PHP_EOL;
echo encryptName('诸葛亮').PHP_EOL;
echo encryptName('西门飘雪').PHP_EOL;
echo encryptName('Eden').PHP_EOL;
张*
诸*亮
西**雪
E**n
PHP中文名加密的更多相关文章
- Java 加解密技术系列之 DES
序 前几篇文章讲的都是单向加密算法.当中涉及到了 BASE64.MD5.SHA.HMAC 等几个比較常见的加解密算法. 这篇文章,以及后面几篇.打算介绍几个对称加密算法.比方:DES.3DES(Tri ...
- iOS加密方式及解压缩文件
Base64加密方式 Base64是一种加密方法,可逆的加密. Base64中的可打印字符包括字母A-Z.a-z.数字0-9,这样共有62个字符./ + 填充 = echo -n BC|base64 ...
- IOS 杂笔-9 (MD5 加密)
首先是一段对MD5的简介 *出自一位大牛之手* Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护 ...
- iOS MD5加密
1.MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321 ...
- RAS RC4 AES 加密 MD5
这两者唯一的相同点是设计者中都包含了MIT的Ron Revist教授.RSA是公钥密码算法,优点:不用事先通过秘密信道传递密钥,可以用于数字签名.缺点:速度慢RC4是序列密码算法,优点:速度快,缺点: ...
- MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)
MD5 编辑 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321( ...
- iOS中的加密方式 与 文件解压缩
1.Base64加密方式 Base64是一种加密方法,可逆的加密. Base64中的可打印字符包括字母A-Z.a-z.数字0-9,这样共有62个字符./ + 填充 = echo -n BC|base6 ...
- MD5加密详解
MD5加密详解 引言: 我在百度百科上查找到了关于MD5的介绍,我从中摘要一些重要信息: Message Digest Algorithm MD5(中文名为信息摘要算法第五版)为计算机安全领域广泛使用 ...
- 2 MD5加密 java实现
百度百科对MD5的说明是: Message Digest Algorithm MD5(中文名为消息摘要算法第 五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护. MD5即Mess ...
随机推荐
- MySQL数据库设置表名区分大小写
使用Mysql的朋友有时候会遇到表名称不区分大小写的情况,导致导入数据或者备份数据库很麻烦. 如何设置Mysql数据库表名区分大小写呢,配置如下: 一.修改Mysql的配置文件my.ini my.in ...
- RHEL7下载
RHEL7下载地址: http://mirrors.aliyun.com/centos/ 我的百度云盘地址: 链接:https://pan.baidu.com/s/1_-bm12bekFlWJiGHj ...
- [树链剖分]BZOJ3589动态树
题目描述 别忘了这是一棵动态树, 每时每刻都是动态的. 小明要求你在这棵树上维护两种事件 事件0: 这棵树长出了一些果子, 即某个子树中的每个节点都会长出K个果子. 事件1: 小明希望你求出几条树枝上 ...
- ES6——class类继承(读书笔记)
前言 我一定是一个傻子,昨天这篇文章其实我已经写好了一半了,但是我没有保存 这是学习ES6的过程,我没有系统的看完阮大大的书.零零散散的,很多功能知道,但是没有实际的用过 看了几遍,总是看前面几章,所 ...
- various system release [online]
1. 金丝雀发布 Canary 简单的金丝雀测试一般通过手工测试验证,复杂的金丝雀测试需要比较完善的监控基础设施配合,通过监控指标反馈,观察金丝雀的健康状况,作为后续发布或回退的依据. 金丝雀发布,一 ...
- CSS显示模式
div和span标签 1.容器级的标签中可以嵌套其他所有的标签(div->一般用于配合CSS完成网页的基本布局.h.ul.ol.dl.li.dt.dd......),文本级的标签中只能嵌套文字/ ...
- make 实例 一 3463
######################################################################### # # Makefile used for buil ...
- 启动项目报错:Unsupported major.minor version 52.0
解决方案: 确保Build Path或者电脑配置的环境变量版本号,和pom中的一致 Exception in thread "main" java.lang.Unsupported ...
- Learning Conditioned Graph Structures for Interpretable Visual Question Answering
Learning Conditioned Graph Structures for Interpretable Visual Question Answering 2019-05-29 00:29:4 ...
- 一个机器绑两个IP可能存在的问题
1.同一网段两个ip 无法绑到一个机器上. 因为会生成两条该网段路由,两个路由用于同网段报文相应,而实际ip选路时只会选择其中一条路由(估计会选择前面那一条)从一个网卡走.这样不管哪个网卡来的局域网内 ...