小编ber*_*kay的帖子

加密是否保证完整性?

要构建一个安全的系统,在开始安全编程之前,我们是否可以假设加密保证了完整性?

  • 在对称和公钥加密方面,我的问题是否经过充分证明?
  • 如果不是,有哪些漏洞,你能举个例子吗?

security encryption cryptography integrity

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

如果验证码不安全,可以使用什么?

据我从读这里,事实的验证码不是可以用100%secure.what,而不是验证码?作为一名程序员,你怎么看?怎么解决这个问题?

编辑:感谢所有答案.

javascript security

10
推荐指数
3
解决办法
938
查看次数

用于测试软件以防止程序员遭受任何攻击的工具?

在这些日子里,我对软件安全感兴趣.正如我正在阅读论文时,我发现有许多攻击,研究人员正试图为软件发明新方法以获得更安全的系统.

这个问题可以是一般性的,包括所有类型的攻击.在SO中有许多有经验的程序员,我只是想学习用什么来检查你的代码来对付这些攻击?你有没有使用过的工具或者你不关心?

例如,我听说过静态/动态代码分析和模糊测试.

  • SQL注入攻击
  • 跨站脚本
  • 缓冲区溢出攻击
  • 逻辑错误
  • 任何类型的恶意软件
  • 隐蔽频道
  • ......

谢谢

security testing fuzz-testing

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

缓冲区溢出攻击的预防技术有哪些?

什么是防止缓冲区溢出攻击的想法?我听说过Stackguard,但到目前为止,这个问题是通过应用stackguard还是将它与其他技术结合起来完全解决的?

热身后,作为一名经验丰富的程序员

为什么你认为 为缓冲区溢出攻击提供足够的防御是如此困难?

编辑:感谢所有答案并保持安全标签活跃:)

security programming-languages buffer-overflow

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

为分类问题生成假数据的最佳方法是什么?

我正在研究一个项目,我有一个用户的击键时间数据的子集.这意味着用户进行了n次尝试,我将在各种分类算法中使用这些记录的尝试时间数据,以供将来用户尝试验证登录过程由用户或其他人完成.(我可以说这是生物识别技术)

我有3次不同的用户登录尝试过程,当然这是无限数据的子集.

直到现在这是一个简单的分类问题,我决定使用WEKA,但据我所知,我必须创建一些假数据来提供分类算法.用户的测量尝试将为1,假数据将为0.

我可以使用一些优化算法吗?或者有没有办法创建这些假数据以获得最小误报?

谢谢

pattern-recognition classification machine-learning biometrics weka

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

解释朴素贝叶斯的结果

我开始使用NaiveBayes/Simple分类器进行分类(Weka),但是在训练数据时我有一些问题需要理解.我正在使用的数据集是weather.nominal.arff.

替代文字

当我使用选项中的使用训练测试时,分类器结果是:

Correctly Classified Instances 13  -  92.8571 %    
Incorrectly Classified Instances 1 - 7.1429 %   

a b classified as  
9 0  a =yes
1 4  b = no
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是,我应该从错误的分类实例中理解什么?为什么会出现这样的问题?哪个属性集合分类不正确?有没有办法理解这个?

其次,当我尝试10倍交叉验证时,为什么我会得到不同(较少)正确分类的实例?

结果是:

Correctly Classified Instances           8               57.1429 %
Incorrectly Classified Instances         6               42.8571 %

 a b   <-- classified as
 7 2 | a = yes
 4 1 | b = no
Run Code Online (Sandbox Code Playgroud)

classification machine-learning weka

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

服务器/客户端c程序出错:"连接:非套接字上的套接字操作"

我正在研究套接字程序,编译时一切都很好.首先,我编译并运行服务器,然后编译并运行客户端.服务器运行正常,但是当客户端启动时,我在Connect()函数中收到一条错误消息.虽然套接字似乎没问题,但客户端将无法连接,服务器也看不到连接尝试.

错误消息是:

连接:非套接字上的套接字操作

这是服务器端代码:

if ((ListeningSocket = socket(AF_INET, SOCK_STREAM,0 )) == -1){
        printf("socket failed!\n");
        exit(1);
    }

     else
          printf("Server: socket() is OK!\n");


     ServerAddr.sin_family = AF_INET;
     ServerAddr.sin_port = htons(5000);
     ServerAddr.sin_addr.s_addr = INADDR_ANY; // any one for any network can connect
     memset(&(ServerAddr.sin_zero), '\0', 8); //


     if (bind (ListeningSocket, (struct sockaddr *)&ServerAddr, sizeof(struct sockaddr))==-1)
     {
          printf("Server: bind() failed!\n");
          exit (1);
     }
     else
          printf("Server: bind() is OK!\n");

     if (listen(ListeningSocket,5)== -1){
          printf("Server: Error listening on socket\n");
          exit (1);
     }
     else{
     printf("Server: listen() is OK, …
Run Code Online (Sandbox Code Playgroud)

c sockets

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

在lpthreads下揭开gcc的神秘面纱

在这些日子里,我正在玩线程库并试图实现一些功能.其中一个教程说要运行程序使用:

gcc -lpthread -lrt -lc -lm project1.c scheduler.c -o out
Run Code Online (Sandbox Code Playgroud)

首先,我需要深入了解gcc在每一行中所做的事情,

  • lpthread用于什么?lrt -lc -lm的贡献是什么?

  • project1.c和scheduler.c是一起编译的,所以我应该理解什么?我检查
    了代码,其中任何一个都没有包含在project1.c或scheduler.c中.

  • 作为输出显然它给出了"out".

其次,作者声明要运行你必须使用的程序

./out number filename (For example, ./out 2 sample.txt)
Run Code Online (Sandbox Code Playgroud)

为了使这些清楚,我理解主函数获取数字和sample.txt作为输入.(?)

谢谢你的回答并让我清楚.

c c++ gcc

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

UNIX访问控制如何创建折衷问题?

我的系统管理员建议我在设置对文件和目录的访问控制时要小心.他给了我一个例子,我感到困惑,这里是:一个保护模式为644(八进制)的文件包含在保护模式为730的目录中.所以它意味着:

  • File:110 100 100(所有者,团体,其他:rw- r-- r--)
  • 目录:111 011 000(所有者,团体,其他:rwx -wx ---)

在这种情况下如何妥协文件?

unix security inode

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

atol(),atof(),atoi()函数行为,是否有一种稳定的方式从/转换为字符串/整数?

在这些日子里,我正在使用atol(),atof()和atoi()的C函数,从博客文章中我找到了一个教程并应用了:

这是我的结果:

void main()
{
    char a[10],b[10];
    puts("Enter the value of a");
    gets(a);
    puts("Enter the value of b");
    gets(b);
    printf("%s+%s=%ld and %s-%s=%ld",a,b,(atol(a)+atol(b)),a,b,(atol(a)-atol(b)));
    getch();
}
Run Code Online (Sandbox Code Playgroud)

atof()返回字符串的浮点值并atoi()返回整数值.

现在看看3我检查这段代码之间的区别:

main()
{
    char a[]={"2545.965"};
    printf("atol=%ld\t atof=%f\t atoi=%d\t\n",atol(a),atof(a),atoi(a));
}
Run Code Online (Sandbox Code Playgroud)

输出将是

atol=2545 atof=2545.965000 atoi=2545

char a[]={“heyyou”};
Run Code Online (Sandbox Code Playgroud)

现在当你运行程序时,以下将是输出(为什么?,是否有任何解决方案将纯字符串转换为整数?)

atol=0 atof=0 atoi=0
Run Code Online (Sandbox Code Playgroud)

该字符串应包含数值.现在将此程序修改为

char a[]={“007hey”};
Run Code Online (Sandbox Code Playgroud)

这种情况下的输出(在Red Hat Linux中测试)将是

atol=7 atof=7.000000 atoi=7
Run Code Online (Sandbox Code Playgroud)

所以这些功能只用了007,而不是剩下的部分(为什么?).

现在考虑一下

char a[]={“hey007?};
Run Code Online (Sandbox Code Playgroud)

该计划的输出将是

atol=0 atof=0.000000 atoi=0
Run Code Online (Sandbox Code Playgroud)

所以我只想将我的字符串转换为数字,然后再转换为相同的文本.我玩这些功能,如你所见,我得到了非常有趣的结果.

这是为什么?

是否还有其他函数可以从/转换为字符串/整数,反之亦然?

编辑:

所以作为输入,如果我拿一些名字,或者其他什么,我会将它们转换为整数/浮点数......然后应用其他一些函数.

另外,我很好奇当我使用你的任何建议时,我是否会使用相同的输入采用相同的输出?

c c++ function

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

填充空格/制表符分隔,空列为0

我有一个巨大的文件,作为输出,一些列没有值,我需要用0填充这些列进行进一步分析.我可以用空格或制表符分隔列,现在在下面用制表符分隔.

替代文字

regex perl awk sed file

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

为什么从文件中读取浮点数会产生舍入输出?

我有一个文件,下面显示了两个输入:

34.800287000 0.077352000

我正在读取一个文件(通过getline然后定义stringstream)并将其保存在我的类变量中,这些变量都定义为double.但是,当我检查我的变量时,我看到:

34.8003 0.077352

编辑:我正在使用cout来检查我的变量.

这是为什么 ?

谢谢.

c++

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