小编pyr*_*lus的帖子

Salt Generation和开源软件

据我了解,生成盐的最佳做法是使用源代码中存储的一些神秘公式(甚至魔术常量).

我正在研究一个我们打算作为开源发布的项目,但问题是源代码是生成盐的秘密公式,因此能够在我们的网站上运行彩虹表攻击.

我认为很多人在我面前都考虑过这个问题,我想知道最佳做法是什么.在我看来,如果代码是开源的话,根本就没有盐,因为盐可以很容易地进行逆向工程.

思考?

security encryption open-source salt rainbowtable

70
推荐指数
3
解决办法
2万
查看次数

Sharepoint开箱即用的批准工作流程以批量修改方式批准/拒绝注释问题

我有一个可重复使用的开箱即用的sharepoint批准工作流程2010,我使用infopath formcode(2010)中的以下代码片段以编程方式批准/拒绝工作流程.

Hashtable ht = new Hashtable();
ht[SPBuiltInFieldId.Completed] = "TRUE";
ht["Completed"] = "TRUE";
ht[SPBuiltInFieldId.PercentComplete] = 1.0f;
ht["PercentComplete"] = 1.0f;
ht["Status"] = "Completed";
ht[SPBuiltInFieldId.TaskStatus] = SPResource.GetString
    (new CultureInfo((int)task.Web.Language, false),
    Strings.WorkflowStatusCompleted, new object[0]);
if (isApprove)
{
    ht[SPBuiltInFieldId.WorkflowOutcome] = "Approved";
    ht["TaskStatus"] = "Approved";
    ht[SPBuiltInFieldId.Comments] = "Approved by Manager";
    ht["Comments"] = "Approved by Manager";
}
else
{
    XPathNavigator navigatorRejectComments
        = this.MainDataSource.CreateNavigator().SelectSingleNode
           (XPATH_REJECT_COMMENTS, this.NamespaceManager);

    ht[SPBuiltInFieldId.WorkflowOutcome] = "Rejected";
    ht["TaskStatus"] = "Rejected";
    ht[SPBuiltInFieldId.Comments] = navigatorRejectComments.Value.Trim();
    ht["Comments"] = navigatorRejectComments.Value.Trim();
}
ht["FormData"] = SPWorkflowStatus.Completed;
web.AllowUnsafeUpdates = true;                                                            
isApproveReject = …
Run Code Online (Sandbox Code Playgroud)

c# sharepoint-2010 sharepoint-workflow

19
推荐指数
1
解决办法
5518
查看次数

线程与Threadstart

在C#中,实际上,我没有发现以下内容之间存在任何差异:

new Thread(SomeMethod).Start();
Run Code Online (Sandbox Code Playgroud)

,

new Thread(new ParameterizedThreadStart(SomeMethod));
Run Code Online (Sandbox Code Playgroud)

new Thread(new ThreadStart(SomeMethod));
Run Code Online (Sandbox Code Playgroud)

有什么区别,如果有的话?

.net c# multithreading

19
推荐指数
2
解决办法
2万
查看次数

从char到单个字符串的隐式转换

首先:我知道如何解决这个问题.我不是在寻找解决方案.我对设计选择背后的原因感兴趣,导致一些隐含的转换并且没有导致其他转换.

今天我在代码库中遇到了一个小但有影响的错误,其中一个int常量用char相同数字的表示初始化.这导致ASCII转换char为a int.像这样的东西:

char a = 'a';
int z = a;
Console.WriteLine(z);    
// Result: 97
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么C#会允许这样的东西.搜索后我发现以下SO问题,Eric Lippert自己给出了答案:C#中的隐式类型转换

摘录:

但是,我们可以做出有根据的猜测,为什么隐含的char-to-ushort被认为是个好主意.这里的关键思想是从数字到字符的转换是"可能是狡猾的"转换.它正在采取你不知道的东西是一个角色,并选择将其视为一个角色.这似乎是你想要明确表达的事情,而不是意外地允许它.但反之则不那么狡猾.C编程中有一个悠久的传统,即将字符视为整数 - 获取它们的基础值,或者对它们进行数学处理.

我同意它背后的推理,虽然IDE提示会很棒.但是,我有另一种情况,隐式转换突然合法:

char a = 'a';
string z = a; // CS0029 Cannot implicitly convert type 'char' to 'string'
Run Code Online (Sandbox Code Playgroud)

这种转换是我的拙见,非常符合逻辑.它不会导致数据丢失,作者的意图也很清楚.还后,我读了答案的其余部分char,以int隐式转换,我还没有看到任何理由,这不应该是合法的.

这就引出了我的实际问题:

C#设计团队有什么理由可以实现隐式转换char为a string,而它看起来很明显(特别是在将它charint转换进行比较时).

.net c# language-design implicit-conversion

10
推荐指数
1
解决办法
670
查看次数

C#OpenFileDialog锁定目录

我正在制作一个软件,只需要允许人们使用OpenFileDialog选择文件和文件夹,这些文件和文件夹与程序位于同一目录中并且位于更深的文件夹中.我不希望OpenFileDialog能够选择程序当前目录之外的东西.使用OpenFileDialog可以在C#中做到这一点吗?

请告诉我

谢谢

.net c# directory-structure openfiledialog

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

如果插入符位于tinyMCE 段落开头,则防止退格

如果我的光标位置位于第一段的开头,我需要防止退格。整件事是我想防止删除编辑器中的第一段。

tinymce

4
推荐指数
1
解决办法
2057
查看次数

如果整行与正则表达式匹配,则仅替换模式

我确信这个问题有一个简单的解决方案,但我似乎无法做到正确:
我只想在整行与正则表达式匹配时替换一行中的特定模式.

所以在我的情况下|,_只有当整行是数字和管道时,三个管道才应该用下划线代替:

|||10|||-80|||-120|||400           ---> replace
|||10|||asdf|||-120|||400          ---> don't replace
|||10|||-80|||400                  ---> replace
|||10|||-80|||-120|||400|||test    ---> don't replace
Run Code Online (Sandbox Code Playgroud)

预期结果:

___10___-80___-120___400
|||10|||asdf|||-120|||400
___10___-80___400
|||10|||-80|||-120|||400|||test
Run Code Online (Sandbox Code Playgroud)

我的尝试:

\|\|\|(?=\-?\d+)
Run Code Online (Sandbox Code Playgroud)

如果按照预期后跟数字,则替换管道,但当然也在"无效"行中

^(\|\|\|\-?\d+){1,}$
Run Code Online (Sandbox Code Playgroud)

匹配整行,因此我不能只更换管道

我理解为什么我的模式不起作用,也许我只需要两次通过,但感觉这应该是完全可能的.

.net c# regex

4
推荐指数
1
解决办法
98
查看次数

C#为所有可选参数提供值

我正在读一本关于C#的书,我在命名和可选参数的章节中.我读过一个子弹,上面写着:

"如果存在多个可选参数且为1指定了值,则还必须为所有前面的可选参数提供值"

能不能给我一个例子,因为我无法从代码中重现上述陈述.

.net c# optional-parameters

3
推荐指数
2
解决办法
1174
查看次数

使用 preventDefault() 提交表单但保留浏览器自动完成功能

我正在使用 ajax 发送表单数据,因此要覆盖我正在使用的默认浏览器行为preventDefault(),但我希望保留浏览器功能以记住输入的数据以供将来自动完成。

是否有可能做到这一点?

HTML

<form id="form-login" action="/padrao/Login/executaLoginAjax" method="post">
    <input type="text" id="usuario" name="usuario[email]" class="entradas" placeholder="Usuário" maxlength="80" required />
    <input type="password" id="senha" name="usuario[senha]" class="entradas" placeholder="Senha" maxlength="12" required />
    <input type="submit" id="btn-logar" value="Acessar o sistema" />
</form>
Run Code Online (Sandbox Code Playgroud)

Javascript

$('#form-login').submit(function(event){

    event.preventDefault();

    var action = $(this).attr('action');
    var dados  = $(this).serialize();

    $.ajax({
        type: "POST",
        url: action,
        data: dados,
        dataType: "json",

        success: function(json){

            if(json.sucesso){
                window.location.href = 'http://' + location.host + '/home';
            }else{
                alert('fail');
            }

        }

    });

});
Run Code Online (Sandbox Code Playgroud)

html javascript ajax jquery

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

将字符串转换为列表或数组

如果我有一个字符串,如:

["aaaaa","bbbbb","ccccc","ddddd","eeeee"]
Run Code Online (Sandbox Code Playgroud)

我如何将其转换为列表或数组?

我是c#编程的新手,这个看似简单的问题让我感到难过.谢谢!

c# asp.net

-1
推荐指数
1
解决办法
156
查看次数

for循环内的while循环

我正在尝试执行使用两个嵌套循环的Python脚本。
第一个是for和第二个(嵌套的是while)。

这是我的代码:

for currentData in data:
    currentState = ''
    count = 0
    while currentState == '': 
        currentState = someMetdhodExecution() ...
        count++
Run Code Online (Sandbox Code Playgroud)

当我把while里面for的脚本崩溃。

能否请你帮我解决这个问题。

先感谢您!

python loops for-loop while-loop

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