原创 linux多線程學習筆記五--線程安全

一,線程安全基礎 一個函數被稱爲線程安全的當且僅當被多個併發線程反覆調用時,它會一直產生正確的結果。我們能夠定義出四類線程不安全函數。 第一類:不保護共享變量的函數 共享變量在多線程中是共享數據,可以通過同步機制來保護共享數據。 第二類:

原创 字符串向前移動的問題

之前面試被要求現場寫一個字符串的移動問題,由於很多問題沒考慮到,寫的十分不理想。偶然翻看《編程珠璣》上面的方法。整理一下。 [cpp] view plaincopy #include<stdio.h>   #includ

原创 linux多線程學習筆記一---基本概念

在學習多線程之前,先搞清楚一下幾個概念 1,什麼是進程,什麼是線程,什麼是同步? 每個正在系統上運行的程序都是一個進程,每個進程包含一到多個線程。進程也可能是整個程序或者是部分程序的動態執行。線程是一組指令的集合,或者是程序的特殊段,它可

原创 openssl 消息認證碼CMAC支持

消息認證碼是一種認證技術,它利用密鑰來生成一個固定長度的端數據塊,並將該數據塊附加在消息之後。通信中,消息和MAC一起被髮給接收方,接收方利用收到的信息及密鑰進行計算,若得到新的MAC值和接受到的值相等,則認爲 1)接收到的信息未被篡改:

原创 Linux內核和用戶空間通信的方法— 使用netlink

作者:Kendo 2006-9-3 這是一篇學習筆記,主要是對《Linux 系統內核空間與用戶空間通信的實現與分析》中的源碼imp2的分析。其中的源碼,可以到以下URL下載: http://www-128.ibm.com/develop

原创 Linux Smack 學習總結

Linux 中的安全模塊LSM是一種輕量級的訪問控制框架。用戶在執行系統調用時,先通過內核接口依次執行功能性的錯誤檢查,接着進行傳統的DAC檢查,在訪問內核之前通過LSM鉤子函數調用LSM,LSM根據具體的訪問控制策略來決定方法的合法性,

原创 Linux內核和用戶空間通信的方法— 使用netlink (續)

本文主要是對《Linux內核和用戶空間通信的方法(二)— 使用netlink》一文中談到到imp2的源碼,進行簡單的流程分析及其執行結果的顯示。   該源碼是從http://www-128.ibm.com/developerworks/c

原创 openssl 學習之enc中salt參數解析

當我們使用openssl  enc 命令工具進行加密的時候,涉及到一個參數 即salt,下面簡單分析一下salt參數。salt說白了就是一個隨機數,salt與passwd串聯,然後計算其hash值來防禦dictionary attacks

原创 openssl 學習之SSL/TLS

之前在微博上看到一個分享,關於HTTPS的,原文鏈接The First Few Milliseconds of an HTTPS Connection,加上最近也在學習openssl 的相關知識。所以也進行簡單的實驗,並整理一些資料,以

原创 數據結構------哈夫曼數及哈夫曼編碼

哈夫曼(huffman)樹,又稱最優樹,是一類帶權路徑長度最短的樹,有着廣泛的應用。通過構造哈夫曼樹來生成哈夫曼編碼。哈夫曼編碼使用的是不等長編碼(ASCII爲等長編碼),通過不等長編碼將出現頻率高的字符編碼比較短,頻率高的字符編碼長的方

原创 OpenSSL之PKey的EVP封裝

在Openssl中,非對稱加密涉及到兩個密鑰。一個爲公開的密鑰(公鑰),一個爲非公開的密鑰。而OpenSSL中非對稱加密算法有RSA、DSA、ECC,他們的原理不同,因此其密鑰結構不同。下面我們列出我們關心的密鑰部分。 1)非對稱算法密鑰

原创 C程序棧空間

實例1 探索局部變量在內存中的存放方式 #include<iostream> using namespace std; struct student{ int num; int dum; }; int main() {     stud

原创 openssl學習之ccm,gcm 模式

openssl中添加了對AES ccm 和gcm模式的支持。下面的內容主要是對這兩個模式相關資料的收集以及整理。 一,CCM CCM (counter with CBC-MAC)定義在分組長度爲128位的加密算法中,如,AES 的分組長度

原创 openssl DSA 算法學習

1,DSA簡介 struct dsa_st { /* This first variable is used to pick up errors where * a DSA is passed instead of of a E

原创 數據結構-----二叉搜索樹

二叉搜索樹是一種搜索樹,通常的二分搜素算法有很好的搜索性能但是一般在順序表上進行,插入和刪除元素比較費時。而通過採用樹型結構,能夠有效的支持插入和刪除,同時保證查找的效率。(很多內容摘自數據結構---陳慧南編寫的書上) 一,二叉搜索樹 1