A. EOS的開發流程
創建一個引用EOS報表構件包的項目。引用該構件包後,即可在此項目上創建報表模板,以及調用報表運算邏輯。用戶也可以現有項目上添加引用報表構件包。
2. 創建報表模板。
o 確定資料庫的連接方式。
o 在報表模板中定製數據的匯總、統計。
o 確定最終顯示樣式。
3. 開發JSP,展現邏輯,業務邏輯。
實現數據的提取、顯示、列印、導出等功能。
4. 調試發布。 1. 根據調用位置的不同,調用EOS報表的方式有兩種:
o 在JSP頁面上調用tag。
o 在業務邏輯中調用EOS報表的運算邏輯。
2. 根據資料庫的連接方式分為:
o JDBC/XML數據源。
o EOS數據源。 一般情況下,報表都是一組有條件的查詢結果,下面將用四個示例分別介紹針對同一需求的四種不同開發方式。
用戶需求如下:
查詢現有系統中的用戶角色和用戶信息,以報表的形式展示出某些角色所對應的用戶名和用戶ID。既可以查詢某一角色對應的用戶信息,也可以查詢所有角色對應的用戶信息,並可以將查詢結果列印或導出到EXCEL中。
案例分析:
1. 查詢要求
o 要求實現條件查詢,條件為角色。
o 分組顯示,按角色分組。
o 可以以html,applet,excel格式返回結果集。
2. 實現要點
o 需要創建條件查詢頁面,做為用戶查看報表的入口,在該頁面需要實現:選擇角色、選擇結果的顯示格式。
o 需要實現分組顯示,該功能在報表模板中實現。
o 需要設定顯示格式,該功能在結果頁面完成。
o 數據的提取可以由結果頁面直接調用報表模板實現,也可以由後台調用「展現邏輯+業務邏輯」的方式實現。
3. 表結構和數據顯示
以下關聯的三個表均為eos的系統表。
查詢SQL語句如下:
select
o.userid,o.operatorname,r.rolename
from
EOSOPERATOR o,
EOSOPERATORROLE eor,
EOSROLE r
where
o.operatorid=eor.operatorid and
eor.roleid=r.roleid and
r.rolename like '%'
order by r.rolename
4. 實現結果展示
o 查詢條件頁面
o 查詢結果頁面
B. 關於nodejs 怎麼實現 crypto des加密
就是加密和解密使用同一個密鑰,通常稱之為「Session Key 」這種加密技術在當今被廣泛採用,如美國政府所採用的DES加密標准就是一種典型的「對稱式」加密法,它的Session Key長度為56bits。
非對稱式加密:
就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為「公鑰」和「私鑰」,它們兩個必需配對使用,否則不能打開加密文件。
加密為系統中經常使用的功能,node自帶強大的加密功能Crypto,下面通過簡單的例子進行練習。
1、加密模塊的引用:
var crypto=require('crypto');
var $=require('underscore');var DEFAULTS = {
encoding: {
input: 'utf8',
output: 'hex'
},
algorithms: ['bf', 'blowfish', 'aes-128-cbc']
};
默認加密演算法配置項:
輸入數據格式為utf8,輸出格式為hex,
演算法使用bf,blowfish,aes-128-abc三種加密演算法;
2、配置項初始化:
function MixCrypto(options) {
if (typeof options == 'string')
options = { key: options };
options = $.extend({}, DEFAULTS, options);
this.key = options.key;
this.inputEncoding = options.encoding.input;
this.outputEncoding = options.encoding.output;
this.algorithms = options.algorithms;
}
加密演算法可以進行配置,通過配置option進行不同加密演算法及編碼的使用。
3、加密方法代碼如下:
MixCrypto.prototype.encrypt = function (plaintext) {
return $.rece(this.algorithms, function (memo, a) {
var cipher = crypto.createCipher(a, this.key);
return cipher.update(memo, this.inputEncoding, this.outputEncoding)
+ cipher.final(this.outputEncoding)
}, plaintext, this);
};
使用crypto進行數據的加密處理。
4、解密方法代碼如下:
MixCrypto.prototype.decrypt = function (crypted) {
try {
return $.receRight(this.algorithms, function (memo, a) {
var decipher = crypto.createDecipher(a, this.key);
return decipher.update(memo, this.outputEncoding, this.inputEncoding)
+ decipher.final(this.inputEncoding);
}, crypted, this);
} catch (e) {
return;
}
};
C. Web前端密碼加密是否有意義
密碼在前端加密完全沒有意義,對密碼系統的安全性不會有任何提高,反而會引發不必要的麻煩。首先,做前端開發的人需要知道,前端系統的控制權是完全在用戶手裡的,也就是說,前端做什麼事情,用戶有完全的控制權。假設如同 @陳軒所說,前端做過了md5,後台就不用做了,這個做法會有什麼後果?如果某一天,這個系統的資料庫泄露了,黑客就直接拿到了每個用戶的密碼md5值,但此時,由於黑客知道密碼是在前端進行哈希的,所以他不需要爆破出該md5對應的原文是什麼,而是直接修改客戶端向伺服器發出的請求,把密碼欄位換成資料庫中MD5就可以了,由於與資料庫中記錄一致,直接就會登錄成功。這跟直接存儲明文密碼沒有任何區別!!!所以不管前端是不是加密了密碼,後台使用安全的哈希演算法對內容再次轉換是非常有必要的。(MD5可不行,要用bcrypt,我之前回答過一個類似的:隨著顯卡性能的高速發展,目前的快速Hash演算法是否已經變得不夠安全了?)這個回答還有一個人贊同,希望大家別被錯誤答案誤導了。另外一個答案 @林鴻所說,在非安全HTTP連接上,可以防止原始密碼被竊聽。但問題在於由於你的登錄系統接受的哈希過的密碼,而不是原文,竊聽者根本不需要原始密碼,只要通過哈希結果就可以偽造請求登錄系統。這樣做只能防止被竊聽到原文的密碼被攻擊者用在社會學攻擊上,而不能改善該網站的安全性。所以不管前端是不是加密了密碼,使用HTTPS安全連接進行登錄都是非常有必要的。以上我說的兩點,合起來看就是:不管前端是否加密了密碼,都不能以此為假設,讓後端設計的安全等級下降,否則就會有嚴重的安全問題。實際上,前端進行密碼加密,可以看做幫助用戶多進行了一次原文的轉換,不管用了什麼加密演算法,算出來的結果都是密碼原文,你該如何保護用戶的原始密碼,就該如何保護此處的加密結果,因為對你的登錄系統來說,它們都是密碼原文。以上這些,說明了密碼加密是沒有什麼意義的,接下來,我要說明前端加密會帶來什麼問題。有些人會認為前端進行了加密,可以降低後台的安全性需求,這種錯誤的觀念會造成系統的安全漏洞。實際上,你不能對前端做任何的假設,所有跟安全相關的技術,都必須應用在後台上。前端進行加密會造成頁面需要js腳本才能運行,那麼假設你的系統需要兼容不能運行js的客戶端,就必須再設計一個使用原文的登錄介面。由於前端是不是加密,所有安全機制都必須照常應用,所以為系統增加這樣的復雜性是完全沒必要的,即使傳輸明文密碼,只要正確使用了HTTPS連接和伺服器端安全的哈希演算法,密碼系統都可以是很安全的。
D. 非vue項目在js里使用jsencrypt
java,thinkPHP等都可以使用jsencrypt.js。
使用jsencrypt.js的目的是實現對數據進行加密傳輸,因為JSEncrypt屬於RSA加密,RSA加密演算法是一種非對稱加密演算法,RSA加密使用了"一對"密鑰.分別是公鑰和私鑰,使用公鑰加密的數據,利用私鑰進行解密,使用私鑰加密的數據,利用公鑰進行解密。
在前端項目中使用jsencrypt進行欄位加密的使用步驟(以PHP為例):獲取公鑰;實例化對象;設置公鑰;將所需數據進行加密然後返回。
E. 為什麼nodejs里session沒有secret配置項就會報錯
secret 是必需的選項,這是用於簽名會話ID cookie的密鑰。這可以是單個密鑰的字元串或多個秘密的數組。如果提供了一組密鑰,只有第一個元素將用於簽名會話ID cookie,而在驗證請求中的簽名時,將考慮所有元素。參考:https://github.com/expressjs/session
F. libcocos2djs.so用手機怎麼找密鑰
首先打開手機的設置功能,然後選擇手機安全這一選項,進去之後會看到網路安全,點擊進去就會查詢到自己的網路安全密鑰
G. 有關使用CryptoJS的AES方法進行加密和解密,後台獲取前端生成的公鑰進行AES加密。前端js如何使用私鑰解密
如果你的填充模式不是PKCS5Padding肯定就解密不了了
CryptoJS.aes.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.cbc.padding:CryptoJS.pad.NoPadding});
CryptoJS可以用的填充模式:
Pkcs7 (the default)
Iso97971
AnsiX923
Iso10126
ZeroPadding