yii加密
⑴ 什么压缩软件好用
1、Windows 7自带zip压缩2、WinRAR3、7-Zip4、IZArc5、TurboZIP6、好压就这6款压缩软件来说,WinRAR的实力不容小觑。,不过它是一款共享软件,过了试用期之后总是弹出对话框,比较讨厌。Windows 7自带的ZIP压缩,效率上有了很大改善,平时应急使用也还不错,只是它的功能较为单一。这几款压缩软件中,7-Zip和好压还是比较好的,虽然都是免费软件,但是功能却丝毫不差,也非常全面。国产软件好压的表现,尤可称道,功能全面,效率也较高,并且还有许多贴合国人使用习惯的附加功能,相当不错,值得推荐。而IZArc这款软件的亮点是:它支持的压缩格式非常全面,而且它还有一项独特的功能,那就是可以快速将压缩文档从一种格式转化为另一种格式。比如你担心对方电脑上没有RAR解压程序,就可以用它将RAR转为ZIP之后在发送给好友。TurboZIP这款软件的亮点是:它除了基本的压缩和解压功能外,更强化了文件管理,可以帮助我们建立更加快速、安全的档案管理系统。它还支持直接对未解压的文件包进行操作,如直接查看PDF、DOC、XLS、PPT等。说道这里还是看你自己觉得哪款压缩软件好。我个人认为好压好。
⑵ 如何在Java 中创建和验证JWT
用户发起登录请求,服务端创建一个加密后的jwt信息,作为token返回值,在后续请求中jwt信息作为请求头,服务端正确解密后可获取到存储的用户信息,表示验证通过;解密失败说明token无效或者已过期。
加密后jwt信息如下所示,是由.分割的三部分组成,分别为Header、Payload、Signature。
eyJhbGciOiJIUzI1NiJ9..vW-
Header包含两部分信息,alg指加密类型,可选值为HS256、RSA等等,typ=JWT为固定值,表示token的类型。
{
"alg": "HS256",
"typ": "JWT"
}
Payload是指签名信息以及内容,一般包括iss (发行者), exp (过期时间), sub(用户信息), aud (接收者),以及其他信息,详细介绍请参考官网。
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
Signature则为对Header、Payload的签名。
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
在jwt官网,可以看到有不同语言的实现版本,这里使用的是Java版的jjwt。话不多说,直接看代码,加解密都很简单:
/**
* 创建 jwt
* @param id
* @param subject
* @param ttlMillis
* @return
* @throws Exception
*/
public String createJWT(String id, String subject, long ttlMillis) throws Exception {
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256 ;
long nowMillis = System. currentTimeMillis();
Date now = new Date( nowMillis);
SecretKey key = generalKey();
JwtBuilder builder = Jwts. builder()
.setId(id)
.setIssuedAt(now)
.setSubject(subject)
.signWith(signatureAlgorithm, key);
if (ttlMillis >= 0){
long expMillis = nowMillis + ttlMillis;
Date exp = new Date( expMillis);
builder.setExpiration( exp);
}
return builder.compact();
}
/**
* 解密 jwt
* @param jwt
* @return
* @throws Exception
*/
public Claims parseJWT(String jwt) throws Exception{
SecretKey key = generalKey();
Claims claims = Jwts. parser()
.setSigningKey( key)
.parseClaimsJws( jwt).getBody();
return claims;
}
加解密的key是通过固定字符串转换而生成的;subject为用户信息的json字符串;ttlMillis是指token的有效期,时间较短,需要定时更新。
这里要介绍的token刷新方式,是在生成token的同时生成一个有效期较长的refreshToken,后续由客户端定时根据refreshToken来获取最新的token。浏览器与服务端之间建立sse(server send event)请求,来实现刷新。关于sse在前面博文中有介绍过,此处略过不提。
⑶ yii中的文件缓存怎样保存不加密文件名或查看显示加密后的缓存文件名啊
改不了的。
Yii中没有这个功能。
建议自己封装一个。
⑷ 解密php eval(base64_decode方法
对于第一段:
eval(base64_decode('90ZXJfdCgpOw=='));
你可以编写如下的测试程序:
<?php
exit(base64_decode('90ZXJfdCgpOw=='));
?>
在命令行执行上面的测试程序,输出结果如下:
function theme_footer_t() { if (!(function_exists("check_theme_footer") && function_exists("check_theme_header"))) { theme_usage_message(); die; } } theme_footer_t();
上面输出的结果,可橘伍扰以替换测试你的第一段代码,它们完全等效,或者说就是解密后的代码,你掌握这个橘指方法,PHP根本就是不可能真正加密的,都是欺负初学圆旦者而已。
⑸ 如何把cookie里面的解码出来
这个是有通过密匙加密的,密匙一般配置在components->request->cookieValidationKey,没有密匙解密。。。就不在我们研究范围了。
至于解密的过程你可以查看yii\web\Request下的getCookies方法,看他怎么解密的。