图像加密技术综述(常见的图像加密算法简介)-程序员宅基地

技术标签: 学习  计算机视觉  图像处理  加密  

彩色图像加密综述(An overview of encryption algorithms in color images):

此文总结了50多项这一领域的研究,还从应用领域的角度对现有的各种彩色(如RGB图像)图像加密方案进行了全面的研究,其中大部分研究已于去年发表。此外,此研究将彩色图像加密分为10类方案,并对所提出的方案进行了比较,突出了它们的优点和局限性。此外,还讨论了(灰度或彩色)图像加密的常用安全分析技术的完整列表,这些技术能够评估该方法对不同可能攻击的潜在抵抗力。此研究旨在提供有关RGB图像领域现有图像加密方案的详细知识。最后,指明未来的研究前景。

1.文本加密到图像加密


各种通信网络上的数据传输导致了多媒体数据安全的敏感性。以前,文本加密是通过RSA(由Rivest、Shamir和Adleman提出)、数据加密标准(DES)、高级加密标准(AES)和国际数据加密算法(IDEA)等方法进行的,然而,图像加密不同于文本加密,因为图像中仅存在一些固有特征,包括高冗余或庞大的数据容量。此外,文本加密方法在扩散和置乱图像数据方面效率低下。携带大量信息的数字图像占了很大比例。总的来说,有两种主要的方法可用于保护数字图像:1).信息隐藏,包括水印、匿名、隐写术和覆盖通道,2).加密,包括常规加密和其他方法,如混沌加密。

2.彩色图像加密的分类

1)按加密方法分
在目前的研究中,图像加密被分为10种主要技术。分别是基于混沌加密、置换加密、基于光学加密、基于DNA(脱氧核糖核酸)加密、基于频率加密、基于散列加密、基于进化加密、基于位平面加密、双(多)图像加密、基于置乱的图像加密。
在这里插入图片描述
2)按加密所在域分:
频域加密:变换域中的加密算法主要基于对变换系数,将图像经过频域变换(如DWT(离散小波变换)、DCT(离散余弦变换)等)分化出高频域与低频域,并通过改变各个频域中系数进行加密。
空域加密:主要基于置乱图像像素或块,直接改变原始图像的像素值位置或者像素值,以Arnold置乱图像加密算法为代表。
在这里插入图片描述

3.常见的加密方法

基于不同的技术提出了许多现有的图像加密手段:包括扫描、圆形随机网格、椭圆曲线ElGamal、格雷码、波传输、矢量量化,离散小波变换,p-斐波那契变换,混沌序列。
主要加密算法举例:
1)基于混沌序列的图像加密算法:混沌系统有许多优秀的固有特性,包括遍历性、非周期性、对初始条件和控制参数的高度敏感性以及伪随机性。典型的基于混沌映射的密码可以分为置换扩散两个阶段。
某些算法的置换操作仅改变像素位置(即置乱);然而,混沌系统产生的混沌序列与扩散过程无关。混沌加密具有很强的加密安全性与鲁棒性。
加密过程如下:
步骤1:根据密钥获取混沌系统的混沌序列。
步骤2:由混沌序列将图像像素值替换得混沌序列图像。
步骤3:重复步骤2,直到到达加密图像。
Aqeel ur Rehman等人(2018年)基于混沌理论和SHA 256提出了一种基于DNA互补规则的异或彩色图像加密技术。该研究利用SHA-256散列函数来修正混沌系统的初始条件和控制参数。根据分段线性混沌映射产生的混沌序列,将彩色图像的三个通道排列成一个一维向量并进行排序。然后,这个排列的阵列被分成三部分,每个部分代表一个颜色通道,并使用洛伦兹混沌系统再次独立排列。一旦进行了双重置换,每个通道的每个像素都被无序地独立编码成脱氧核糖核酸(DNA)碱基。
该算法的新颖之处在于,通道的每个像素都被DNA互补规则的异或运算所取代。利用多条DNA规则以随机次数按顺序重复此操作。此操作迭代将循环进行。循环操作开始时的DNA规则选择和操作继续依赖于陈氏混沌序列。大量的仿真实验结果表明,该算法在一轮加密中取得了良好的加密效果。
下图为基于Lorenz混沌序列的图像加密效果图:
在这里插入图片描述
在这里插入图片描述

2)使用置换的彩色图像加密算法
排列的常见级别为位级别、像素级别和块级别排列,此外,行置乱和列置乱被分类为块级别排列。位级置换(BLP)是2011年首次提出的一种新方法,在图像加密的置乱阶段被利用。在BLP中,图像被认为是由一个位矩阵组成的,所有的加密效果都被应用到该矩阵中;因此,加密后图像最终应反映这些加密效果的位分布。相比之下,以前的图像加密算法用于在像素级执行加密过程,而BLP直接作用于普通图像中的每个位,而不是像素级的位组。大多数先前提出的图像加密算法在普通图像的不同位平面之间执行几轮2维和3维置换,随后将不同置换位平面组合以生成混淆(加密)的彩色图像。
如:
Abhimanyu Kumar Patro和Acharya(2018)在中提出了一种基于多级置乱操作的安全多图像加密技术;该技术与当前使用的多种图像加密技术完全不同。在所提出的加密技术中使用了三级置换操作,第一、第二和第三级置换操作在R、G和B分量中执行像素置乱操作,行置乱操作在像素洗牌的R、G和B分量之间执行,列置乱操作在行置乱组件之间,各自进行。
最后,使用所提出的加密算法执行块扩散操作,以获得最终的加密图像。此外,该算法使用的密钥不仅依赖于原始密钥值,而且还依赖于原始彩色图像。这支持针对已知纯文本和选定纯文本攻击的算法。仿真结果和安全性分析表明,该算法具有加密效果好、密钥空间大、对密钥和明文敏感度高、相邻像素相关性弱、像素随机性大、对各种常见攻击具有足够的抵抗能力等特点。

3)光学彩色图像加密算法
有学者因经典光学双随机相位编码(DRPE)系统结构启发而在提出一些光学图像加密技术。光学DRPE方法及其数值模拟算法首先结合基于输入信号传播的系统各个阶段的采样考虑因素进行了研究。然后,研究了各种著名的光学激励加密技术,并将其分为光学技术和图像置乱技术。对每种方法进行了数值实现,并与光学DRPE方案进行了比较,其中在不同变换后应用了随机相位扩散器(掩模)。
首先,演示了每种方法所采用的光学系统,然后检查了相应的数值算法的实现,以保持光学对应物的特性。常见的光学图像加密包括菲涅耳变换(FST)、偏振、回转器变换(GT)、哈特利变换、双随机相位编码和分数傅里叶变换(FFT)。下面。
如:Abuturab介绍了一种在GT域结构化相位编码中使用离散余弦变换的新方法,但用于保护彩色图像。该研究中提出的技术中,通过离散余弦变换(DWT)改变像素值的空间分布,将要加密的输入彩色图像分成三个通道,每个通道分别进行独立加密,然后使用结构化相位掩模对它们进行编码。GT是在合成光谱上进行的。在该方法中,结构化相位掩模、离散余弦变换和GT被两次使用。此外,结构化相位掩模的结构参数和GT在每个通道中的角度参数是主要的加密密钥。此外,在该方法中给出了电光实现原理图,所提出的结构不需要轴向移动。针对选定的和已知的纯文本攻击,证明了该算法的有效性;此外,数值仿真验证了该方法的安全性、有效性和性能。

4)基于DNA的彩色图像加密
使用下表将图像编码为DNA碱基很简单。R、G和B通道使用四种DNA规则编码。以下介绍了在基于DNA的彩色图像加密领域完成的一些研究。

Wu等人(2015)提出了一种基于DNA序列运算和多个性能优异的改进一维混沌系统的彩色图像加密新方案。在本研究中,首先使用秘密密钥和普通图像以及密钥流从三个改进的一维混沌系统生成密钥流;此外,根据DNA编码规则将普通图像随机转换为DNA矩阵。其次,对DNA矩阵进行DNA互补和异或运算,得到乱序DNA矩阵。在第三步中,将打乱的DNA矩阵平均分解为块,然后将这些块随机洗牌。
表1.DNA序列编码和和解码的几种映射规则
在这里插入图片描述
5) 基于频域的彩色图像加密
水印或隐写技术可分为在空间域的与频率域的。空间域过程是考虑图像中像素插入水印的最古老技术。频谱和最低有效位(LSB)是常用的方法。然而,空域技术并不能抵抗所有类型的攻击。另一方面,通过使用离散小波变换(DWT)、脊波变换、离散余弦变换(DCT)、离散阿达玛变换(DHT)和离散傅里叶变换(DFT)变换原始图像,使用频域技术插入水印。然后,执行水印插入过程。这些技术被广泛接受,并且对所有类型的攻击都更具鲁棒性。以下是基于频域的彩色图像加密领域的一些研究。
Liu等人利用Arnold变换和DCT设计了一种彩色图像加密算法。该算法利用Arnold变换对彩色图像的RGB分量进行像素序列置乱。在由随机角度定义的矩阵控制下,随机交换和混合加扰后的RGB分量。采用DCT变换改变彩色图像的像素值。在该加密方案中,上述操作连续执行两次。采用Arnold变换和随机角度参数作为彩色图像加密方法的密钥。为了验证颜色加密算法的有效性和性能,进行了一些数值模拟。
基于频域的图像加密算法的优点是结构简单,易于实现;但使用这些算法的最重要原因是计算复杂度低。

6)基于哈希的彩色图像加密
哈希函数通常用于生成固定长度的输出位(相当于输入任意一篇文章,输出固定长度的摘要),用作为原始数据的缩短摘要。自从MD5的冲突被解决后,SHA-2已变得更适合密码系统设计,它由一组哈希函数组成,其摘要(digests:消息摘要:长度不固定的消息(message)作为输入参数,运行特定的Hash函数,生成固定长度的输出,这个输出过程就是Hash,也称为这个消息的消息摘要Message Digest)为224、256、384或512位,但迄今为止尚未发现冲突。2012年10月2日,Keccak被选为NIST哈希函数竞赛的获胜者,成为SHA-3。
一些散列函数为灰度图像设计的,另外一些散列函数(如以下方法)是为RGB彩色图像设计的。
如:
Dong(2015)设计了一种基于混沌的非对称彩色图像加密方案。将普通图像散列值转换为分段线性混沌映射(PWLCM)的三个初始值,然后迭代生成三个伪随机序列,分别漫反射R、G和B分量。将散列值和初始迭代次数m作为加密过程中的密钥;此外,PWLCM的三个初始值和初始迭代数n被用作解密过程中的密钥。数值结果表明了所提出的非对称彩色图像加密系统的可行性和有效性。

7)使用进化方法的彩色图像加密
目前,科学家们非常重视进化算法(EAS),并在许多应用中使用。顾名思义,基于EA(evolutionary algorithms)的方法具有迭代性质,这种特殊特性有助于算法在每次迭代中改进其结果。EAS的主要优势在于,它能够以最少的信息处理问题,而不会留下任何引导结果的中间计算细节。这最后一点完美的使数据加密领域任何密码分析尝试复杂化等相当困难。因此,数据加密问题可以通过优化程序解决,从编码操作到最终结果的实现,通过以下小节保持详细的总体结构。在一项调查中,Enayatifar等人提出了一种基于加权离散帝国主义竞争算法(WDICA)的加密方法,或一种由遗传算法(GA)和Abdullah等人提出的混沌函数组成的混合模型。Kuppusamy等人提出了一种局部图像加密优化方案,使用daubechies 4域内采用粒子群优化(PSO)技术选择的变换图像的高能系数进行加密。此外,还设计了一些基于进化的彩色图像加密方法,如以下算法。

有学者介绍了一种新的彩色图像加密算法。在该研究中,获得了彩色平面图像RGB分量的24(R、G、B各8位)位平面,并将其重组为4个复合位平面;这可能会使这三个组成部分相互影响。一个四维(4D)记忆超混沌系统生成伪随机密钥流,其初始值来自彩色普通图像的SHA256散列值。基于遗传重组原理对复合位平面和密钥流进行混淆,然后将混淆和扩散作为位平面的并集,得到彩色密码图像。实验结果和安全性分析表明了该算法的安全性和有效性;因此,它可以用于安全通信。

图像加密中的进化方法在创新方面有所提高,但这些算法的主要优点是其高灵敏度和安全性

8) 使用位平面分解的8位二进制彩色图像加密
灰度图像中的每个像素可以表示为8位二进制值,由下等式分布。
P(x,y)=K(8),K(7),K(6),K(5),K(4),K(3),K(2),K(1)

通常,8位灰度图像的上四位平面包含大量信息(即第8、第7、第6和第5),而下四位平面(第4、第3、第2和第1)包含的信息较少。像素信息百分比分布为下等式所示:
在这里插入图片描述
因此,利用位平面技术将图像分解为子部分,此外,使用二值位平面分解将灰度图像分离为8位二值平面,如图2所示;其中,第n位平面实际上由每个像素的二进制表示的所有第n位组成。非负十进制数N可用二进制序列(bn-1…b1,b0)表示,如下等式:
在这里插入图片描述
Sravanthi等人提供了另一种图像加密技术。考虑到使用分段线性混沌映射(PWLCM)和二维逻辑调整正弦映射的位平面操作。最初,位平面扩散。使用PWLCM系统执行操作,然后使用二维逻辑调整正弦映射执行行洗牌和列洗牌操作。此外,利用安全散列算法SHA-256更新所提出密码系统的密钥,以抵抗已知明文和选择明文攻击。位平面运算是该算法的主要意义。除了同时扩散像素外,此操作还会混淆像素。仿真结果表明,该密码系统具有较好的加密效果,安全性分析表明,该密码系统对最常见的攻击具有较强的抵抗能力。
下图为彩色Lena图像的位平面分解图:

在这里插入图片描述
9)彩色图像的双(多)图像加密
使用迭代相位检索技术的双灰度图像加密算法包括一系列向前和向后迭代。为了检查双色图像,将分别对三组灰度图像(彩色图像分解为R、G和B通道,每个分量视为灰度图像)进行加密。但是,在这种方法中不使用颜色组件之间的相互关系。它还导致三倍大的迭代循环和相位函数。为了减少互联网上的图像通信过载,双(多)图像加密近年来引起了极大的兴趣。多重图像加密的优点是能够同步加密多个图像。一些研究人员提出了各种加密算法,包括双重(多重)图像加密;下面列出了一些关于双色图像加密的研究。
Wei等人(2017)提出了一种基于离轴全息和最大长度网状(cellular 蜂窝真状的、网状的;全息学(一种不用透镜的照相术;它利用激光在底片上记录出立体的形象。))自动机(MLCA)的双色图像加密方案。原始图像被分为红色、绿色和蓝色三个通道,每个通道使用MLCA掩码独立加密,以改变空间域中的强度值。然后将不同入射角的参考波引入离轴傅里叶变换全息图,实现双色图像加密。每个通道中离轴傅里叶变换的系统参数也是图像加密和解密的关键。在解密一幅原始图像时,利用了具有一定入射角的参考波和相应的MLCA掩模。一些数值模拟证明了所提方案的有效性,本文作者给出了初步实验的结果。有学者提出了一种光学双色图像密码,使用二维混沌Arnold变换(AT)作为预处理置乱阶段,并在基于菲涅耳(Fr)的Hartley变换(HT)中使用二维混沌逻辑调整正弦映射(LASM)相位掩模。在这种光学双色图像密码中,利用二维混沌等离子体产生混沌相位掩模。首先利用二维混沌对彩色平面图像RGB通道进行置乱。在下一步中,使用二维混沌等离子体相位掩模对加扰的彩色平面图像R-G-B通道进行调制,并使用基于Fr的HT进行变换。变换后的复R-G-B通道的分布用二维混沌AT置乱,用二维混沌等离子体相位掩模调制,然后用基于Fr的HT变换。除了2D混沌AT,2D混沌等离子体相位掩模的使用提供了有效的密钥管理和通信。此外,光学几何参数被视为额外的密钥,增强了该方案的保密性。对所提出的方案进行了全面的安全性研究,测试结果验证并确保了所提出方案的高安全性和抵抗大多数潜在攻击的能力。

10)使用置乱变换的彩色图像加密
图像置乱是一种图像加密或辅助加密技术[172],也是图像隐藏、共享和数字水印中预处理和后处理的重要方法。Arnold变换、Jigsaw变换、Fibonacci变换、Knight’s tour、Lucas变换、幻方变换、格雷码、细胞自动机、Baker映射和亚仿射变换是图像加密中流行的图像置乱方法。使用置乱变换在彩色图像加密领域完成的一些研究如下。
有学者提出了一种利用GT和Arnold变换的彩色图像加密方案;该方案包括两个安全级别。在方案的第一级,将彩色图像分为红色、绿色和蓝色三个分量,并使用Arnold变换对其进行归一化和置乱。绿色分量与第一个随机相位掩模组合,并使用GT转换为过渡。加密结果在一定程度上符合平稳白噪声分布和伪装特性。在加密和解密过程中,GT的旋转角度、Arnold变换的迭代次数、混沌映射的参数以及产生的伴随相函数作为加密密钥,从而提高了系统的安全性。仿真结果和安全性分析证实了该方案的安全性、有效性和可行性。
下图为基于Arnold变换加密示意图

在这里插入图片描述
在这里插入图片描述

4.图像加密的安全等级

低级:如果加密方案不能抵御密码分析攻击,则安全性将被评估为较低。
中级:如果加密方案对某些密码分析攻击是安全的,则安全性评估为中等。
高级:如果它对所有密码分析和特殊攻击都是鲁棒的,则该方案被评估为高度安全。

5.图像加密的评价指标

1)直方图分析(Histogram Analysis:):直方图显示图像的灰度强度和统计信息,以及像素强度值的分布,此外还提供有关直方图攻击中使用的普通图像的信息。然而,在直方图一致的情况下,信息变得不可预测,可以避免直方图攻击。
2)相关性分析(Correlation Analysis:):平面图像中的两个相邻像素在垂直和水平方向上具有强相关性。这是图像的特性,相关系数的最大值和最小值分别为1和0;对统计攻击进行稳健加密的图像的相关系数值应为0。
3)信息熵分析(Information Entropy Analysis):熵分析是对信息随机性的一种度量,计算每个颜色通道的每个灰度的像素扩散。如果分布更均匀,它将更强地抵抗统计攻击。对于彩色图像,强度在0-255之间的R-G-B通道和加密消息的理想熵分数越高,值越高,分布越均匀。
4)加密质量(Encryption Quality: ):加密质量(EQ)表示每个灰度级L的平均变化次数。图像EQ可通过以下等式确定,其中E(i,j)和i(i,j)是加密图像和普通图像中网格(i,j)处像素的灰度值,每个像素的大小分别为M×N个像素和L个灰度级。很明显,I(I,j)和E(I,j)∈ {0,1,…,L-1}。HL(I)和HL(E)将分别定义为普通图像和密码图像中每个灰度级L的出现次数。EQ值越大,加密安全性越好。
5)敏感度:表示更改清晰图像中的单个位必须导致加密图像中至少50%的位发生更改。使用两个参数评估灵敏度:像素数变化率(NPCR)和统一平均变化强度(UACI)。NPCR和UACI分别表示两个加密图像之间的变化像素数和两个加密图像之间的平均变化强度数。NPCR和UACI的理想值分别为99.61%和33.46%。
6)雪崩效应:雪崩效应是指在纯文本中改变一位时,密码文本中改变的位所占的比例。雪崩效应的理想值为0.5,它通常用于指示密码文本中发生变化的比特数的比率,而系统中的比特数略有变化。
7)密钥空间分析:指能够用于产生密钥的所有可能密钥的集合,是决定密码系统强度的最重要特征之一。尝试查找的次数直接指密码系统的密钥空间随着密钥大小的增加呈指数增长。也就是说,将一个算法的密钥大小加倍并不仅仅是将所需的操作数加倍,而是将它们平方化。密钥大小为128位的加密算法将密钥空间定义为2128,使用现代高性能计算机检查所有可能的密钥大约需要1021年。因此,密钥大小为128位的密码系统在计算上看起来对暴力攻击具有鲁棒性。安全算法应该对密钥完全敏感,即加密图像不能通过密钥的细微变化来解密。
8)密钥敏感性分析:理想的多媒体加密应该对密钥敏感,也就是说,密钥中单个比特的变化应该伴随着产生完全不同的加密结果,称为密钥敏感性。一般来说,混沌密码的密钥敏感性是指混沌映射初始状态的敏感性以及控制参数的敏感性。
对比度调整:为了便于观看,图像必须具有适当的亮度和对比度,其中前者表示整个图像的亮度或黑暗度,而后者定义亮度差,以确定不同区域的清晰分离。因此,对比度调整是一种图像处理机制,其中输入强度被映射到期望水平以增强感兴趣的区域或区域。这种对比度增强在加密图像上以70%和30%的两个不同级别应用,较低的值意味着较高的对比度,然后比较解密图像和原始图像。
9)高斯噪声分析:通信噪声的失真、退化和污染在物理世界中很常见。因此,为了测试算法在这种情况下的鲁棒性,数字被均值为零且方差为0.0001、0.0003和0.0005的高斯噪声污染,并且再次在加密图像中添加了密度为1%、5%、10%和25%的椒盐噪声。对有噪声的加密图像进行解密,并对结果进行比较。因此,抗噪声的鲁棒性是测试加密方案性能的重要指标。
10)遮挡噪声分析:当通过互联网进行通信时,图像的一部分可能会被剪切甚至丢失,因此建议的密码必须能够以适当的方式处理有损图像的加密。为了显示针对这种情况提出的密码的强度,从图形中移除红色通道的像素块、绿色通道的像素块和所有通道的像素块,然后对它们进行加密;如果原始信息在解密后被保留,并且可以可视化原始图像的内容,则建议的密码将能够处理有损图像的解密。
11)直方图均衡化:图像的直方图包括灰度范围和每个灰度的出现情况[96]。在对有噪声的加密图像进行解密后,如果图像的视觉信息保持不变,则所提出的密码将能够对直方图均衡化进行反击。利用峰值信噪比(PSNR)参数对直方图均衡化进行评估。PSNR是峰值信号功率与噪声功率之比。基本上,均方误差(MSE)表示隐藏和原始图像之间的总平方误差。MSE和误差之间存在比例关系,其中MSE的Ler值与Ler误差相同。m x n单色图像的关系如下所示。因此,MAX表示图像像素的最大值。总的来说,对于每个采样8位的像素,图像的值是255。
12)JPEG压缩:这也是图像处理中常见的操作。在仿真中,首先使用不同的质量因子对加密图像进行压缩;较大的质量因子意味着较小的压缩率,在JPEG压缩后产生更好的图像质量。在解密图像和原始图像之间比较PSNR值。如果仍然可以识别解密后的图像,则该算法对JPEG压缩攻击具有鲁棒性。
13)裁剪攻击:在实际应用中,图像裁剪是一种非常常见的操作,这种操作可能导致数据丢失。裁剪是有意删除加密图像中的一些像素值,并将其传递给解密算法。然后对解密后的图像进行分析,测试所采用的加密方案的鲁棒性。
速度分析:分析图像加密算法的计算代价是必要的。与文本相比,多媒体数据的容量大得惊人。如果密码系统在重要性方面对所有多媒体数据位进行同等加密,计算复杂度可能为H,这通常被证明是不必要的。加密方案的速度也是实时应用中的一个重要问题。
14)随机性测试:为了保证密码系统的安全性,密码必须具有分布性好、周期长、复杂度高、效率高等特点。这些测试的主要目的是集中于序列中各种可能的随机性。其中一些测试包括许多子测试。最近,NIST设计了一组不同的统计测试,旨在证明基于硬件或软件的加密随机数或伪随机数生成器生成的二进制序列的随机性。
15)纯密文攻击:当密码文本本身可用时,试图解密密码文本的攻击。对手试图恢复相应的纯文本或加密密钥。
16)已知纯明文攻击:对手试图在访问密码文本和相关纯文本时恢复密钥。
17)选择明文攻击:具有良好扩散特性的图像加密算法能够抵抗选择纯文本攻击。然而,当几种现有的图像加密算法使用相同的安全密钥加密原始图像时,它们的加密图像是重复的。攻击者利用此安全弱点,使用选定的纯文本攻击破坏加密算法。
常见加密算法评价指标python实现可参考

常见图像加密性能评价指标(详解加python实现)

参考文献
[1].Ghadirli H M, Nodehi A, Enayatifar R. An overview of encryption algorithms in color images[J]. Signal Processing, 2019, 164: 163-185.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_48951688/article/details/125565984

智能推荐

linux c之syscall使用例子_linux futex syscall-程序员宅基地

文章浏览阅读8.6k次。#include extern char **__environ; /* pointer to array of char * strings that define the current environment variables */extern int errno;extern char _end, _edata, _etext, __executable_start;in_linux futex syscall

电信光猫DDNS的设置经历-程序员宅基地

文章浏览阅读1.9w次。最近换了个中兴F650A的网关,上网、电话等都设置好了,花生壳的DDNS弄了很久都没弄好,记录一下过程,也给遇到类似情况的朋友提个醒。设置按默认的参数就可以了,如下图:刚开始弄了很久,卡在输入的主机名保存后,切换其它界面,再回去主机名又被清空了,也没有任何提示信息,反复试了多次都这样,网上搜索了很久也没找到什么有用的信息。后来无意中用 sendcmd 1 DB p DDNSClient 查看配置参数时发现有个 “Status”的字段有个认证错误之类的信息,再联想起花生壳主页上似乎看到过有需要实名认证,没_光猫ddns

fragment类onresume里面刷新操作处理-程序员宅基地

文章浏览阅读392次。今天项目中涉及fragment中嵌套多个fragment,但是要根据tag去展示对应的fragment,而不是默认展示的第一个fragment,如果使用activity很容易想到onpause(),onResume()中进行处理,但是你会发现fragment的onpause和onresume只调用一次,因此,需要通过重写onHiddenChanged来进行处理,该方法当fragment隐..._onresume 刷新数据源,怎么优化

前端HTML5+CSS3静态页面开发-博文尚美_博文尚美网站-程序员宅基地

文章浏览阅读7.8k次,点赞50次,收藏133次。前端html5+css3静态页面开发-博文尚美项目介绍博文尚美是一个设计网站, 此项目由html + css 布局完成页面,对前端基础知识的入门及掌握有非常好的提升效果,对html和css的使用及布局的体验能够建立起强大的信心。项目相关知识点HTML + CSS盒子模型 + 浮动 + 定位部分H5标签和C3属性项目演示图实现步骤1.在新建 index.html 中,创建基本框架,在标签里面使用标签引入 index.css。2.清除 css 默认样式,添加预设样式。代码如下:_博文尚美网站

oracle-listagg()函数实现列转行_oracle 列转行分隔符为换行符-程序员宅基地

文章浏览阅读1.5k次。oracle-listagg()函数实现列转行_oracle 列转行分隔符为换行符

Tkinter--Button和Scale样例_x *= self.scale_-程序员宅基地

文章浏览阅读3.1k次。#-*- coding: utf-8 -*-"""按扭操作"""import Tkinterclass Application(Tkinter.Frame): count = 0 def __init__(self, master=None): Tkinter.Frame.__init__(self, master)_x *= self.scale_

随便推点

前端学习笔记 // 设置背景颜色铺满页面以及去掉页面滚动条_前端铺满-程序员宅基地

文章浏览阅读893次。1.设置背景颜色铺满页面该点可参考以下文章:css如何让height:100%起作用?简单来说,就是如果你想让一个元素铺满页面,既设置 height:100%,那么你需要给这个元素的所有父元素的高度都设定一个有效值。因为浏览器在根据百分比来计算一个元素的高度时,需要先获取其父元素的高度,进而计算该元素的高度。<head> <style> html,body{ ..._前端铺满

mongoose对MongoDB数据库的增删查改-程序员宅基地

文章浏览阅读475次。专业课上,老师经常告诉我们,数据库的操作无非就是增删查改,即CURD,事实也正是如此,我们接下来看看mongoose操作no SQL数据库MongoDB的CURD。常见操作条件和API常见的查询条件$or 或关系 $nor 或关系取反$gt 大于$gte 大于等于$lt 小于$lte 小于等于$ne 不等于$in 在多个值范围内$nin 不在多个值范围内$all 匹配数组..._mongose 修改mongodb

python 1110: 最近共同祖先(函数专题)_cornell python 1110-程序员宅基地

文章浏览阅读134次。def common(x,y):if x==y:return xelif x>y:return common(x//2,y)else:return common(x,y//2)a,b=map(int,input().split())print(common(a,b))_cornell python 1110

ip地址转换省市_ip地址转省市区-程序员宅基地

文章浏览阅读1.1w次。前言最近开发一个支付系统,为了避免上游风控(路由规则限制),需要根据请求ip解析到对应物理地域信息,从而匹配到对应的地域商户,解决跨域消费问题。即将线上消费包装成线下消费。实例:支付宝线下商户不能线上交易。可用的api接口淘宝http://ip.taobao.com/service/getIpInfo.php?ip=61.183.230.xx{"code":0,"data":{"ip":"61.1..._ip地址转省市区

torch.load()加载模型时报错_torch.load('tensor.pt')加载出错-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏3次。torch.load()加载模型时出现如下错误Traceback (most recent call last): File "demo_syncnet.py", line 26, in <module> s.loadParameters(opt.initial_model); File "/media/cj/75bb371d-0b6d-4995-bb72-060a4..._torch.load('tensor.pt')加载出错

ASP.Net TextBox 只读(ReadOnly)时后台不能赋值取值_asp.net后台文本框只读-程序员宅基地

文章浏览阅读801次。当把ASP.Net的自带控件TextBox设置为只读时,后台无法正常取值(取到的结果为“”)。解决办法如下:1. 不设置ReadOnly属性,添加事件onfocus=this.blur() 2、设置了ReadOnly属性后,通过Request来取值,如下:string Text = Request.Form["TextBox1"].Trim(); 3、在Pa_asp.net后台文本框只读

推荐文章

热门文章

相关标签