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方法,看他怎麼解密的。