小编Kev*_*vin的帖子

在Android/Java和C#中计算SHA256哈希

我试图在android中生成SHA256哈希,然后我传递给ASP.NET Web API Web服务并在那里比较哈希.因此,我需要在Android中构造一个哈希,给定ASP.NET中相同的输入将生成一个等效的哈希.我拉着我的头发试图找出我做错了什么.

这是Android代码:

public String computeHash(String input) throws NoSuchAlgorithmException{
    MessageDigest digest = MessageDigest.getInstance("SHA-256");
    digest.reset();
    try{
      digest.update(input.getBytes("UTF-8"));
    } catch (UnsupportedEncodingException e){
      e.printStackTrace();
    }

    byte[] byteData = digest.digest(input.getBytes());
    StringBuffer sb = new StringBuffer();

    for (int i = 0; i < byteData.length; i++){
      sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
    }
    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

以及这里的服务器代码(c#):

    private static string ComputeHash(string input, HashAlgorithm algorithm)
    {

        Byte[] inputBytes = Encoding.UTF8.GetBytes(input);
        Byte[] hashedBytes = algorithm.ComputeHash(inputBytes);

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

asp.net security android sha asp.net-web-api

34
推荐指数
1
解决办法
1万
查看次数

Breezejs - 用于查询本地缓存的模式

我有一个名为Item的类,它被PeriodId过滤.有很多时期 - 但我们只需要一次看一个.我想向用户显示初始数据加载(例如,PeriodId == 1).然后,我希望用户能够在其他时段查询/过滤.

如果用户选择PeriodId == 2,我希望entityManager查询本地缓存,如果数据存在,则返回该数据.如果它不在本地缓存中,我希望它查询服务器,并将PeriodId == 2的集合添加到缓存中.如果用户然后单击PeriodId == 1,则该数据应该已经在缓存中而不是往返于服务器.

使用下面的代码,每次选择一个句点时,我都会点击服务器(即使我只是来回切换).有没有解决这个问题的模式......我不知道这里的主键.

var getItems = function (myObservable, periodId, forceRemote) {

    var pId = periodId ? periodId : 1;

    var query = entityQuery.from('Item')
        .orderBy(orderBy.items)
        .where("PeriodId", "==", pId);

    if (!forceRemote) {
        var r = getLocal(query);
        if (r) {
            if (r.length > 3) {
                myObservable(r);
                return Q.resolve();
            }
        }
    }

    return manager.executeQuery(query)
        .then(querySucceeded)
        .fail(queryFailed);

    function querySucceeded(data) {
        if (myObservable) {
            myObservable(data.results);
        }
    }
};

function getLocal(query) {
    try {
        return manager.executeQueryLocally(query);
    } …
Run Code Online (Sandbox Code Playgroud)

knockout.js single-page-application breeze

6
推荐指数
1
解决办法
1819
查看次数

在角度控制器中动态创建kendo-grid列

我试图动态构建一个剑道角网格的结构.我的问题是,在k-options评估属性时,网格选项是未知的,因此网格绑定到数据源上的所有列.

这是HTML:

<div kendo-grid k-options="{{gridModel.options}}" 
    k-data-source="gridModel.myDataSource">
</div>
Run Code Online (Sandbox Code Playgroud)

这是控制器中的javascript:

// this is called after the api call has successfully returned with data
function getSucceeded(){
    ...
    $scope.gridModel.options = function(){
        // function that properly builds options object with columns, etc.
    }
    // this is just shown for example... the data is properly loading
    $scope.gridModel.myDataSource.data(ds.data()); 
}
Run Code Online (Sandbox Code Playgroud)

数据正确加载,但由于gridModel.options在成功方法设置之前在HTML中进行了评估,因此它基本上被忽略,并且正在呈现数据源中的所有列.

gridModel.options静态时,这就像一个冠军.

k-options在控制器设置后,如何推迟评估和/或强制重新评估?

javascript kendo-ui angularjs kendo-grid

3
推荐指数
1
解决办法
9389
查看次数