About OpenSSL(Part 1)


关于OpenSSL社区

OpenSSL功能简介,OpenSSL外围包提供了如下三种功能:
1. 命令行工具,用来完成各种各样密码学相关的任务。例如,创建证书、解析证书、加密文件、加密算法测试等。
2. 全面的、可扩展的密码学库(libcrypto)。覆盖了大多数标准定义的加密算法,可用硬件扩展或者加速。
3. 符合SSL/TLS协议的加密通讯库(libssl)。提供客户端和服务端进行加密通讯的的能力。
Continue reading “About OpenSSL(Part 1)”

Python程序性能提升的一种方法


python程序性能分析

虽然运行速度慢是 Python 与生俱来的特点,大多数时候我们用 Python 就意味着放弃对性能的追求。但是,就算是用纯 Python 完成同一个任务,老手写出来的代码可能会比菜鸟写的代码块几倍,甚至是几十倍(这里不考虑算法的因素,只考虑语言方面的因素)。很多时候,我们将自己的代码运行缓慢地原因归结于python本来就很慢,从而心安理得地放弃深入探究。

但是,事实真的是这样吗?面对python代码,你有分析下面这些问题吗:

程序运行的速度如何?
程序运行时间的瓶颈在哪里?
能否稍加改进以提高运行速度呢?
为了更好了解python程序,我们需要一套工具,能够记录代码运行时间,生成一个性能分析报告,方便彻底了解代码,从而进行针对性的优化(本篇侧重于代码性能分析,不关注如何优化)。

Continue reading “Python程序性能提升的一种方法”

有趣的Shell字符串


 

#!/usr/bin/env bash
str=$1
if [[ "$str" = "" ]]; then
     echo "1 empty"
fi

if [[ "$str" = " " ]]; then
    echo "2 empty"
fi

if [[ "$str" = "0" ]]; then
    echo "3 empty"
fi

if [[ "$str" = "00" ]]; then
    echo "4 empty"
fi

if [[ "$str" -eq 0 ]]; then
    echo "5 empty"
fi

if [[ "$str" -eq 000 ]]; then
    echo "6 empty"
fi

if [[ "$str" -eq '0' ]]; then
    echo "7 empty"
fi

if [[ "$str" -eq '00' ]]; then
    echo "8 empty"
fi
## show results
1 empty
5 empty
6 empty
7 empty
8 empty

Openssl与数字签名


安全相关的开发工作不可避免的会碰到“数字签名”,“数字证书”等概念,无论是数字签名还是数字证书都跟openssl这个超级厉害开源软件有着千丝万缕的联系。笔者在研究安全启动的过程成中被数字证书这套技术折腾得焦头烂额,本文打算从非对称加密算法说起,分析数字签名、数字证书的来龙去脉,同时会介绍一些Openssl关于证书管理等方面的命令。 Continue reading “Openssl与数字签名”

Python container是什么


Some objects contain references to other objects; these are called containers. Examples of containers are tuples, lists and dictionaries. The references are part of a container’s value. In most cases, when we talk about the value of a container, we imply the values, not the identities of the contained objects; however, when we talk about the mutability of a container, only the identities of the immediately contained objects are implied. So, if an immutable container (like a tuple) contains a reference to a mutable object, its value changes if that mutable object is changed.

Continue reading “Python container是什么”

Python 编码错误根因分析


Python编程特别是网页解析时一定遇到过UnicodeEncodeError、UnicodeDecodeError 错误,每当遇到错误我就拿 encode、decode 函数翻来覆去的转换,有时试着试着问题就解决了,有时候怎么试都解决不了,为了避免下次遇到类似的问题重蹈覆辙,所以需要分析清楚 Python 字符编码错误的根因。 Continue reading “Python 编码错误根因分析”