<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[junjun5156的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/junjun5156</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; junjun5156]]></copyright><item><title><![CDATA[关于对称密码算法的一些基本知识]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/148582080</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/148582080</guid><author>junjun5156</author><pubDate>Wed, 11 Jun 2025 11:18:21 +0800</pubDate><description><![CDATA[CMAC 是 CBC-MAC 的改进版，CMAC 内部自动处理 padding，调用者无需关心。🔒 ECB 模式（Electronic Codebook）并不安全用于 MAC！攻击者可以任意重排、替换块，而不会影响“MAC”值的计算，导致严重安全问题。相同的输入块产生相同的输出块 → 没有链式依赖。每个输入块独立加密，不依赖其他块。无法提供“完整性保护”或“认证”为什么没有 ECB-MAC？]]></description><category></category></item><item><title><![CDATA[Windows设置目录及子目录大小写敏感暨git克隆报错同名文件已存在的解决办法]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/146075173</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/146075173</guid><author>junjun5156</author><pubDate>Thu, 06 Mar 2025 17:08:17 +0800</pubDate><description><![CDATA[在 Windows 操作系统中，文件系统（如 NTFS 或 exFAT）默认情况下是大小写不敏感的，这意味着文件和文件夹的名称会被视为相同，无论大小写如何。例如，MyFile.txt和myfile.txt被认为是相同的文件。然而，Windows 10 和 Windows 11 提供了一个选项，可以允许特定目录或文件夹启用“大小写敏感”模式。这意味着在启用此功能的情况下，文件系统会区分大小写，MyFile.txt和myfile.txt将被视为两个不同的文件。]]></description><category></category></item><item><title><![CDATA[RSA公钥格式公钥结构解析]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/137500389</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/137500389</guid><author>junjun5156</author><pubDate>Mon, 08 Apr 2024 15:29:06 +0800</pubDate><description><![CDATA[和i2d_RSAPublicKey(rsa,&pub_key);结果是PKCS8格式的。和i2d_RSA_PUBKEY(rsa,&pub_key);结果是PKCS1格式的。用代码转换pem公钥为der格式，得到长度只有268，分析发现是只包含了n、e值的结果，没有前面的算法oid信息。可能是第一步i2d_PublicKey就转换成功退出了，这个接口可能不会考虑oid等信息，只干n和e的值。失败，因为参数in传入的是PKCS#8格式的公钥（后来才知道的）。]]></description><category></category></item><item><title><![CDATA[openssl AF_ALG引擎使用]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/137036433</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/137036433</guid><author>junjun5156</author><pubDate>Tue, 26 Mar 2024 15:32:31 +0800</pubDate><description><![CDATA[AF_ALG是Linux提供的一种虚拟接口，用于访问内核中的加密算法。在Linux中，可以使用AF_ALG接口配合加密算法框架（Crypto API）来进行加密操作。在这个例子中，我们首先加载AF_ALG加密引擎。然后，我们设置会话使用的加密算法为AES-128-CBC。最后，我们使用openssl的enc命令进行加密操作，指定输入文件input.txt和输出文件output.txt，并使用密钥mysecretkey进行加密。]]></description><category></category></item><item><title><![CDATA[openssl 查看和指定rsa密钥E值]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/132067584</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/132067584</guid><author>junjun5156</author><pubDate>Wed, 02 Aug 2023 17:27:13 +0800</pubDate><description><![CDATA[aes128, -aes192, -aes256 		使用aes cbc模式对私钥文件进行加密。-des3 		使用des3 cbc模式对私钥文件进行加密。-idea 		使用idea cbc模式对私钥文件进行加密。-des 		使用des cbc模式对私钥文件进行加密。-rand file:file 	指定随机数种子文件。-seed arg 		指定cbc的随机种子。-out file 		指定输出私钥文件名。-f4				指定F4做为E值，默认。-3 				指定3做为E值。]]></description><category></category></item><item><title><![CDATA[find 指定查找深度以及或且非条件]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/131429800</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/131429800</guid><author>junjun5156</author><pubDate>Wed, 28 Jun 2023 09:23:40 +0800</pubDate><description><![CDATA[【代码】find -maxdepth 1 指定查找深度。]]></description><category></category></item><item><title><![CDATA[linux 配置mac地址]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/131412793</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/131412793</guid><author>junjun5156</author><pubDate>Tue, 27 Jun 2023 11:28:31 +0800</pubDate><description><![CDATA[有说 通过配置文件 /etc/sysconfig/network-scripts/…进行配置并 service network restart。]]></description><category></category></item><item><title><![CDATA[迅雷下载GitHub文件提示需要授权或登录等]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/129952720</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/129952720</guid><author>junjun5156</author><pubDate>Tue, 04 Apr 2023 14:49:06 +0800</pubDate><description><![CDATA[到下载失败时，链接不再有效。当您的程序重试连接时，它应该使用原始 URL 重试，因为 HTTP 302 是 临时 重定向，因此用户代理（您的浏览器或下载工具）应该访问 原始的 URL，因为重定向可能会改变（在这种情况下，它确实改变了）。不要点文件浏览器下载后再复制下载中的连接，而是直接在GitHub要下载的文件连接上右键复制下载链接再到迅雷下载，很快就下完了。您最好使用curl 或类似工具下载这些程序，如果远程服务器支持Range 标头，它会做正确的事情并且还能够恢复下载。例如，下载windterm。]]></description><category></category></item><item><title><![CDATA[default-scheduler 0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims.]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/129314778</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/129314778</guid><author>junjun5156</author><pubDate>Fri, 03 Mar 2023 10:17:19 +0800</pubDate><description><![CDATA[错误：default-scheduler  0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims.解决：pvc 和 pv都要释放重建。]]></description><category></category></item><item><title><![CDATA[docker 配置私有/本地镜像仓库]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/129196213</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/129196213</guid><author>junjun5156</author><pubDate>Fri, 24 Feb 2023 11:02:00 +0800</pubDate><description><![CDATA[docker 配置私有仓库 本地仓库]]></description><category></category></item><item><title><![CDATA[Ubuntu上部署webservice]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/80455060</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/80455060</guid><author>junjun5156</author><pubDate>Fri, 25 May 2018 17:50:07 +0800</pubDate><description><![CDATA[1.安装基础组件 
sudo apt-get install flex bison 
sudo apt-get install libtool 
sudo apt-get install zlib1g-dev 
sudo apt-get install libssl-dev 
2.下载并安装gsoap源代码 
tar -xvf gsoap_2.8.66.zip 
./configure  
mak...]]></description><category></category></item><item><title><![CDATA[ifly error code 讯飞离线识别错误码]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/78337996</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/78337996</guid><author>junjun5156</author><pubDate>Wed, 25 Oct 2017 10:13:52 +0800</pubDate><description><![CDATA[MSP_SUCCESS 0   函数执行成功 
MSP_ERROR_FAIL  -1  失败 
MSP_ERROR_EXCEPTION -2  异常 
MSP_ERROR_GENERAL   10100   基码 
MSP_ERROR_OUT_OF_MEMORY 10101   内存越界 
MSP_ERROR_FILE_NOT_FOUND    10102   文件没有发现 
MSP_ERROR_N]]></description><category></category></item><item><title><![CDATA[linux 基于alsa 使用libmad 解码库实现MP3文件的播放]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/78040646</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/78040646</guid><author>junjun5156</author><pubDate>Wed, 20 Sep 2017 14:41:35 +0800</pubDate><description><![CDATA[本设计根据libmad库中minimad.c改写成的，保留了原始的英文注释，minimad.c实现了MP3的解码成PCM音频数据，打印到屏幕上。本设计添加了alsa的播放设置函数，以及在解码output的函数中，将输出写入到声卡中，实现了MP3 文件的解码播放。 
注意：本设计编译之前需要编译libmad库， 编译时需要连上 -lmad -lasound 的选项。 
使用方法为在终端:./mp3-p]]></description><category></category></item><item><title><![CDATA[pthread 主线程子线程退出关系]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/77979139</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/77979139</guid><author>junjun5156</author><pubDate>Thu, 14 Sep 2017 13:02:48 +0800</pubDate><description><![CDATA[我们在一个线程中经常会创建另外的新线程，如果主线程退出，会不会影响它所创建的新线程呢？下面就来讨论一下。1、  主线程等待新线程先结束退出，主线程后退出。正常执行。 
实例代码：#include "apue.h"  
#include <pthread.h>  pthread_t ntid;//线程ID  void printids(const char *s)  
{  
        pid_]]></description><category></category></item><item><title><![CDATA[error: field * has incomplete type]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/75039881</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/75039881</guid><author>junjun5156</author><pubDate>Wed, 12 Jul 2017 18:49:33 +0800</pubDate><description><![CDATA[在编译程序是出现了如题错误， 类或结构体有前向声明的用法，编译到这里时还没有发现定义，不知道该类或者结构的内部成员，没有办法具体的构造一个对象，所以会报错。  
两种解决方法： 
方法一：将类成员改成指针就好了； 
方法二：将结构体定义放同一个地方。]]></description><category></category></item><item><title><![CDATA[函数指针]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/74626161</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/74626161</guid><author>junjun5156</author><pubDate>Fri, 07 Jul 2017 09:37:56 +0800</pubDate><description><![CDATA[1.简单的函数指针的应用 
形式1：返回类型(*函数名)(参数表) char (*pFun)(int);   
char glFun(int a){ return;}   
void main()   
{   
    pFun = glFun;   
    (*pFun)(2);   
}  第一行定义了一个指针变量pFun。首先我们根据前面提到的“形式1”认识到它是一个指向某种函数的指针，这]]></description><category></category></item><item><title><![CDATA[extern "C"]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/73650047</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/73650047</guid><author>junjun5156</author><pubDate>Fri, 23 Jun 2017 17:03:59 +0800</pubDate><description><![CDATA[1.引言 
　　C++语言的创建初衷是“a better C”，但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言， 
C++保留了一部分过程式语言的特点（被世人称为“不彻底地面向对象”），因而它可以定义不属于任何类的全局变量和函数。但是，C++毕竟是一种面向对象的程序设计语言 
，为了支持函数的重载，C++对全局函数的处理方式与C有明]]></description><category></category></item><item><title><![CDATA[a.a 使用了 b.a 则第三方c.*无法直接获取b.a的函数定义]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/73585331</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/73585331</guid><author>junjun5156</author><pubDate>Thu, 22 Jun 2017 12:38:12 +0800</pubDate><description><![CDATA[b.a 定义了funcb1()，funcb2(); 
a.a定义了funca(): 
如： 
void funca() 
{ 
    printf(“this is funca\n”); 
    funcb1(); 
} 
有一个文件c，编译链接了a.a,可以使用funca();但是无法使用b.a的函数即使申明也没用。若要使用只能将b的源文件同a的源文件一起变异成.a]]></description><category></category></item><item><title><![CDATA[dd 命令拷贝linux系统]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/72782967</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/72782967</guid><author>junjun5156</author><pubDate>Sat, 27 May 2017 17:00:11 +0800</pubDate><description><![CDATA[Linux系统如果想做备份还原,使用ghost的时候经常出现问题,后来发现可以直接使用dd命令完成硬盘的克隆和还原.当拷贝完硬盘后，就可以拿这个硬盘放到其它设备上跑了。也就是完成了“烧写”了。 
实际操作中，最好使用另一个系统启动，如另一个硬盘的系统，或者用live cd。当然，拷贝当前运行中的系统也是可以的，但不知当前的这个系统还有哪些不确定东西，所以还是不建议。 
用fdisk -l查看当前所有]]></description><category></category></item><item><title><![CDATA[linux 基于timerfd的纳秒级定时器]]></title><link>https://blog.youkuaiyun.com/junjun5156/article/details/72674517</link><guid>https://blog.youkuaiyun.com/junjun5156/article/details/72674517</guid><author>junjun5156</author><pubDate>Wed, 24 May 2017 11:08:23 +0800</pubDate><description><![CDATA[一.timerfd介绍1：timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符，所以能够被用于select/poll的应用场景。 
1.      使用方法 
timerfd提供了如下接口供用户使用 
timerfd_create() 
int timerfd_create(int clockid, int flags); 
timerfd_create用于创建一个定时器]]></description><category></category></item></channel></rss>