我写了一个简短的C++程序来对一个文件进行XOR加密,我可以将它用于一些个人文件(如果它被破解它没什么大不了的 - 我只是在防范偶然的观众).基本上,我使用ASCII密码并使用文件中的数据重复XOR密码.
但现在我很好奇:如果有人想破解这个问题,他们会怎么做呢?需要很长时间吗?它取决于密码的长度(即什么是大O)?
我想在ASP.NET MVC应用程序中加密一些数据,以防止用户篡改它.我可以使用Cryptography类来进行实际的加密/解密,没问题.主要问题是找出存储加密密钥的位置并管理对其的更改.
由于ASP.NET已经为各种事物维护了一个machineKey(ViewData加密等),我想知道是否有任何ASP.NET函数允许我使用machineKey加密/解密我自己的数据?这样我就不必设计自己的密钥管理系统.
我正在尝试在TFS 2008上设置持续集成构建.在我要构建的项目中,我使用密钥进行签名.此密钥使用密码.我无法构建它,因为在构建期间TFS想要显示一个无法显示的对话框.我想我需要在服务器上手动构建项目,但只有TFS资源管理器和构建部件安装在服务器上.有关如何使我的项目正确构建的任何建议?
这是TFS给出的错误:
C:\ WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1805,7):错误MSB4018:"ResolveKeySource"任务意外失败.System.InvalidOperationException:当应用程序未在UserInteractive模式下运行时显示模式对话框或窗体不是有效操作.指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知.在Microsoft.Build.Tasks.ResolveKeySource.Execute()的Microsoft.Build.Tasks.ResolveKeySource.ResolveAssemblyKey()上的System.Windows.Form.ShowDialog(IWin32Window所有者)处的System.Windows.Forms.Form.ShowDialog()
我已经看到很多使用类似的东西编写的示例代码(请原谅这是多么可怕的罐头):
public class Test
{
public object Thingy { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些例子从未真正解释为什么'set'被设置为私有.所以,我只是想知道是否有一个好的,常见的例子可以向我说明为什么会使用这样的东西.
我有点看到它 - 除了设置该字段外,还可以运行属性来处理一些额外的逻辑.我只是对如何调用它感到困惑,为什么会使用这种方法而不是通用的setter方法.
你能解释一下"完美转发"的工作原理吗?
我读到vector的emplace_back不需要复制或移动对象,因为它的参数是作为可变参数模板实现的.
std::vector<T>::emplace_back(_Args&&... __args)
Run Code Online (Sandbox Code Playgroud)
你能更详细地描述一下吗?为什么不复制或移动?
当我覆盖虚函数时:
class Geoff
{
public:
virtual int getArea() { return 0; }
}
Run Code Online (Sandbox Code Playgroud)
当我覆盖它时,我应该再次指定'virtual'吗?它有什么不同吗?我知道两种方式似乎都很好,只是想知道它是否还有更多.
class George : public Geoff
{
public:
virtual int getArea() { return x*y; }
}
Run Code Online (Sandbox Code Playgroud) 如何检索与目录中的模式匹配的所有文件名?我试过这个,但它返回完整路径而不是文件名.
Directory.GetFiles (path, "*.txt")
Run Code Online (Sandbox Code Playgroud)
我是否必须手动裁剪结果的目录路径?它很简单,但也许有一个更简单的解决方案:)
在.NET中,每个解决方案/项目都有SUO,SLN,Proj文件.虽然我知道这些文件是什么,但手动编辑是否明智?他们甚至需要编辑吗?如果是这样,最好的方法是什么?
谢谢
我正在阅读算法设计手册第二版,这是一个练习题.引用问题
编译器和文本编辑器的一个常见问题是确定字符串中的括号是否是平衡的并且是否正确嵌套.例如,字符串((())())()包含正确嵌套的括号对,字符串)()(和())不包含.如果字符串包含正确嵌套和平衡的括号,则给出一个返回true的算法,否则返回false.对于完全信用,如果字符串未正确嵌套和平衡,则标识第一个违规括号的位置.
问题在堆栈,队列和列表类别下.这是我在C#中写的内容.
const char LeftParenthesis = '(';
const char RightParenthesis = ')';
bool AreParenthesesBalanced(string str, out int errorAt)
{
var items = new Stack<int>(str.Length);
errorAt = -1;
for (int i = 0; i < str.Length; i++)
{
char c = str[i];
if (c == LeftParenthesis)
items.Push(i);
else if (c == RightParenthesis)
{
if (items.Count == 0)
{
errorAt = i + 1;
return false;
}
items.Pop();
}
}
if (items.Count > 0)
{
errorAt = items.Peek() + …Run Code Online (Sandbox Code Playgroud) 我正在尝试了解c ++应用程序中的整数提升和比较是如何工作的。
#include <cstdint>
int main(void)
{
uint32_t foo = 20;
uint8_t a = 2;
uint8_t b = 1;
uint8_t c = 5;
if(foo == b*c) {}
if(foo == a) {}
if(foo == a + c) {}
if(foo == a + b*c) {}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
仅对于最后一次比较,我得到一个编译器警告:“有符号和无符号整数表达式[-Wsign-compare]之间的比较”。
为什么这仅在最后一种情况下发生而在其他情况下不发生?
.net ×3
c# ×3
c++ ×3
security ×2
algorithm ×1
asp.net ×1
build ×1
c++11 ×1
code-signing ×1
cryptography ×1
delay-sign ×1
directory ×1
encryption ×1
filenames ×1
polymorphism ×1
private ×1
stl ×1
tfs ×1
xor ×1