基于混沌算法的图像加密解密系统

news2024/11/28 16:56:29

1.研究背景与意义

项目参考AAAI Association for the Advancement of Artificial Intelligence

研究背景与意义:

随着信息技术的迅猛发展,图像的传输和存储已经成为现代社会中不可或缺的一部分。然而,随着互联网的普及和信息的快速传播,图像的安全性问题也日益凸显。为了保护图像的机密性和完整性,图像加密解密技术应运而生。

传统的图像加密解密方法主要基于数学算法,如DES、AES等。这些算法在一定程度上能够保护图像的安全性,但是随着计算机技术的发展,这些算法的安全性逐渐受到挑战。因此,研究人员开始寻找更加安全可靠的图像加密解密方法。

混沌算法作为一种新兴的加密解密技术,具有很大的潜力。混沌算法是一种非线性动力学系统,具有高度的敏感性和不可预测性。它的主要特点是初始条件的微小变化会导致系统输出的巨大变化,这使得混沌算法在加密解密领域具有很大的优势。

基于混沌算法的图像加密解密系统具有以下几个方面的意义:

首先,基于混沌算法的图像加密解密系统能够提供更高的安全性。混沌算法的不可预测性使得攻击者很难通过分析加密算法的数学模型来破解加密图像。这样一来,图像的机密性就能够得到更好的保护。

其次,基于混沌算法的图像加密解密系统能够提供更高的效率。混沌算法的并行性和高速性使得加密解密过程可以在较短的时间内完成,从而提高了系统的效率。

此外,基于混沌算法的图像加密解密系统还具有较强的适应性和灵活性。混沌算法可以根据不同的需求和应用场景进行调整和优化,从而实现更加灵活的加密解密方式。

最后,基于混沌算法的图像加密解密系统对于图像信息的传输和存储具有重要的意义。通过使用混沌算法对图像进行加密,可以有效地防止图像在传输和存储过程中被非法获取和篡改,从而保证图像信息的完整性和可靠性。

综上所述,基于混沌算法的图像加密解密系统具有较高的安全性、效率、适应性和灵活性,对于保护图像的机密性和完整性具有重要的意义。随着混沌算法的不断发展和优化,相信基于混沌算法的图像加密解密系统将在信息安全领域发挥越来越重要的作用。

2.图片演示

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

3.视频演示

基于混沌算法的图像加密解密系统_哔哩哔哩_bilibili

4.混沌系统简介

混沌系统

混沌理论是美国气象学家Lorenz在1963年发表的《确定性非周期流》中提出的。它被看作是一种整个系统看似不确定,然而却有规律可循的伪随机系统。只有在初始条件完全一致的情况下,混沌系统的结果才能得到复现。不过,学术界在很长一段时间里都对它没有一个公认的数学定义。直到1975年,在一篇由李天岩同其导师合作发表的著作中对混沌系统给出了清晰明确的数学上的定义,从此开辟了混沌系统研究的新篇章。混沌系统具备遍历和不可预测等特性,符合密码学对加密算法的要求,能够应用于图像加密等众多加密领域。本节从混沌的定义、特征、判定和常见的混沌系统四个方面介绍关于混沌的相关知识。

混沌的定义

对混沌的研究一直处于探索阶段,许多学者通过结合自己的研究方向和领域,对混沌进行了不同角度的解释和定义。目前,在学术界使用较多、认可度高的是Li-Yorke(李天岩-约克)定义l67和Devaney(德瓦尼)定义[68的,两者具体的定义内容如下:
(1) Li-Yorke(李天岩-约克)定义:
1975年,李天岩同其导师合作发表了一篇名为《Period three implies chaos》的论文对混沌给出了较为准确、完整的定义,并被称为Li-Yorke定义且被后续学者广泛使用。该定义具体内容为:若f(x)在闭区间D上连续自映射且满足下列条件:

  1. f周期点的周期无上界:
    2.闭区间D中存在不可数子集Q(QeD),且满足以下3个公式:i.对vxi,x2 e Q,且xy≠xz时:
    在这里插入图片描述

其中,sup为上确界,inf为下确界。
那么f(x)就是混沌的。
(2)Devaney(德瓦尼)定义:
与Li-Yorke定义方法不同的是,Devaney定义使用了拓扑理论对混沌进行解释和描述。其定义为:若存在度量空间z,当度量空间z上存在一个连续自映射f时,如果f满足下列条件:

  1. f的周期点在度量空间Z中是稠密的:
  2. f具有拓扑传递性:对VM,N ∈Z,an >0使得f“(M) nN≠中:
  3. f具有初值敏感性:对vE>0和vx∈Zz,36 > 0,x2∈E领域且有自然数n使得|f"(x)- f"(xz) > 8;
    那么就可以说f在Z上就是混沌的。
混沌系统的特性

混沌系统是一种基于数学原理的伪随机系统,其运动非常复杂,毫无规律可言,具有初值敏感、长期不可预测、内在随机等以下特性:
(1)初值敏感性:当给定的两个系统初始值不同时,即使两个输入的初始值差距极小,通过混沌系统的演化后,两个初始值将产生截然不同的结果,结果值的差距可能很大,这就是所谓的“雪崩效应”。尽管是极微小的初始数值差异,也会引发极大的结果值不同。
(2)长期不可预测性:由于混沌系统的初值敏感性。

5.核心代码讲解

5.1 decrypt_image.py

class HomomorphicsEncryption:
    def __init__(self, alpha, beta, gamma):
        """
        图像同态加密

        参数:
        alpha: 光照增益参数 (浮点数)
        beta: 反射系数参数 (浮点数)
        gamma: 对数变换参数 (浮点数)
        """
        self.alpha = alpha
        self.beta = beta
        self.gamma = gamma

    def decrypt(self, encrypted_image):
        """
        解密图像

        参数:
        encrypted_image: 加密的图像 (NumPy数组)

        返回值:
        decrypted_image: 解密后的图像 (NumPy数组)
        """
        # 将加密图像转换为浮点型
        encrypted_image = encrypted_image.astype(np.float32)

        # 反转反射系数调整
        image = (encrypted_image - self.gamma) / self.alpha

        # 对数反变换
        log_image = np.log1p(image)

        # 傅里叶变换
        fft_image = np.fft.fft2(log_image)

        # 中心化频谱
        shifted_fft = np.fft.fftshift(fft_image)

        # 构建高通滤波器
        rows, cols = image.shape[:2]
        center_row, center_col = rows // 2, cols // 2
        filter = np.zeros((rows, cols), dtype=np.float32)
        filter[center_row-10:center_row+10, center_col-10:center_col+10] = 1

        # 应用滤波器
        filtered_fft = shifted_fft * filter

        # 逆变换
        shifted_ifft = np.fft.ifftshift(filtered_fft)
        ifft_image = np.fft.ifft2(shifted_ifft)

        # 反对数变换
        decrypted_image = np.expm1(np.real(ifft_image))

        # 转换为8位无符号整型
        decrypted_image = np.clip(decrypted_image, 0, 255).astype(np.uint8)

        return decrypted_image


该程序文件名为decrypt_image.py,主要功能是对加密图像进行解密。

程序首先导入了cv2、HomomorphicEncryption和ChaosImageCryptor模块。

HomomorphicsEncryption类的构造函数接收三个参数alpha、beta和gamma,分别表示光照增益参数、反射系数参数和对数变换参数。

decrypt方法接收一个加密的图像作为参数,返回解密后的图像。在解密过程中,首先将加密图像转换为浮点型,然后进行反转反射系数调整,再进行对数反变换,接着进行傅里叶变换,并对频谱进行中心化处理。然后构建一个高通滤波器,应用该滤波器对频谱进行滤波。最后进行逆变换和反对数变换,并将解密后的图像转换为8位无符号整型。

接下来,程序定义了一个key变量,用于加密和解密过程中的密钥。encrypted_image_path和decrypted_image_path分别表示加密图像和解密后的图像的路径。

程序使用cv2模块读取加密图像,并创建了一个ChaosImageCryptor对象cryptor。

然后创建了一个HomomorphicEncryption对象decryptor,使用decrypt方法对加密图像进行解密,并将解密后的图像保存到decrypted_image_path路径。

接着使用cv2模块读取解密后的图像,并调用cryptor对象的decrypt_image方法对图像进行进一步解密。

最后,将最终解密后的图像保存到decrypted_image_path路径。

5.2 encrypt_image.py

class HomomorphicsEncryption:
    def __init__(self, alpha, beta, gamma):
        self.alpha = alpha
        self.beta = beta
        self.gamma = gamma

    def encrypt(self, image):
        image = image.astype(np.float32)
        log_image = np.log1p(image)
        fft_image = np.fft.fft2(log_image)
        shifted_fft = np.fft.fftshift(fft_image)
        rows, cols = image.shape[:2]
        center_row, center_col = rows // 2, cols // 2
        filter = np.zeros((rows, cols), dtype=np.float32)
        filter[center_row-10:center_row+10, center_col-10:center_col+10] = 1
        filtered_fft = shifted_fft * filter
        shifted_ifft = np.fft.ifftshift(filtered_fft)
        ifft_image = np.fft.ifft2(shifted_ifft)
        decrypted_image = np.expm1(np.real(ifft_image))
        encrypted_image = self.alpha * image + self.beta * decrypted_image + self.gamma
        ......

这个程序文件名为encrypt_image.py,它包含了一个名为HomomorphicsEncryption的类和一些其他的函数和变量。

HomomorphicsEncryption类有一个构造函数,它接受三个参数alpha、beta和gamma,用于图像同态加密。类中还有一个encrypt方法,用于对输入的图像进行加密操作。

程序的主要逻辑是:

  1. 导入所需的库和模块,包括cv2、homomorphic_encryption和ui。
  2. 创建一个ChaosImageCryptor对象cryptor,用于图像加密。
  3. 调用cryptor对象的encrypt_image方法,对指定路径的图像进行加密,并将加密后的图像保存到output_path路径。
  4. 使用cv2库的imread函数读取加密后的图像。
  5. 创建一个HomomorphicEncryption对象encryptor,使用指定的密钥进行初始化。
  6. 调用encryptor对象的encrypt方法,对读取的图像进行加密操作。
  7. 使用cv2库的imwrite函数将加密后的图像保存到output_path路径。

整个程序的目的是对指定路径的图像进行同态加密,并将加密后的图像保存到指定路径。

5.3 homomorphic_encryption.py

class HomomorphicEncryption:
    def __init__(self, key):
        self.key = key

    def encrypt(self, image):
        encrypted_image = np.add(image, self.key) % 256
        return encrypted_image

    def decrypt(self, encrypted_image):
        decrypted_image = np.subtract(encrypted_image, self.key) % 256
        return decrypted_image

这个程序文件名为homomorphic_encryption.py,它实现了一个名为HomomorphicEncryption的类。该类有一个构造函数__init__,接受一个参数key作为密钥,并将其存储在实例变量self.key中。

该类还有两个方法encrypt和decrypt,用于加密和解密图像。encrypt方法接受一个参数image作为要加密的图像,它将图像的每个像素值与密钥相加,并对结果取模256,然后返回加密后的图像。decrypt方法接受一个参数encrypted_image作为要解密的图像,它将加密图像的每个像素值与密钥相减,并对结果取模256,然后返回解密后的图像。

5.4 paillier_encryption.py
class PaillierEncryption:
    def __init__(self, public_key, private_key=None):
        self.public_key = public_key
        self.private_key = private_key

    def encrypt_image(self, image):
        encrypted_image = [[self.public_key.encrypt(int(pixel)) for pixel in row] for row in image]
        return encrypted_image

    def decrypt_image(self, encrypted_image):
        decrypted_image = [[self.private_key.decrypt(pixel) for pixel in row] for row in encrypted_image]
        return decrypted_image

这个程序文件名为paillier_encryption.py,它实现了一个PaillierEncryption类。该类的构造函数接受一个公钥(public_key)和一个可选的私钥(private_key)作为参数。

该类有两个方法:

  1. encrypt_image方法接受一个图像(image)作为参数,并对图像中的每个像素进行加密。加密后的图像以二维列表的形式返回。
  2. decrypt_image方法接受一个加密图像(encrypted_image)作为参数,并对加密图像中的每个像素进行解密。解密后的图像以二维列表的形式返回。

该程序使用phe库中的paillier模块来实现Paillier加密算法。Paillier加密算法是一种公钥加密算法,可以对整数进行加密和解密操作。

6.系统整体结构

整体功能和构架概述:
该图像加密解密系统的整体功能是对图像进行加密和解密操作。系统使用了混沌算法、同态加密和Paillier加密算法来实现图像的安全传输和保护。系统包含了四个主要的程序文件:decrypt_image.py、encrypt_image.py、homomorphic_encryption.py和paillier_encryption.py。其中,decrypt_image.py和encrypt_image.py分别用于图像的解密和加密操作,homomorphic_encryption.py实现了同态加密算法,paillier_encryption.py实现了Paillier加密算法。另外,ui.py是一个用户界面文件,用于提供用户友好的图形界面来操作图像加密解密系统。

下表整理了每个文件的功能:

文件名功能
decrypt_image.py对加密图像进行解密操作
encrypt_image.py对图像进行加密操作
homomorphic_encryption.py实现同态加密算法
paillier_encryption.py实现Paillier加密算法
ui.py提供用户界面,用于操作图像加密解密系统

7.图像隐写

图像隐写可以追溯到20世纪90年代,当时互联网的使用正在快速增长,数字图像成为当时主要的信息传输方式之一。在这种情况下,图像隐写被广泛应用于隐藏秘密图像信息,以避免被未经授权的人员拦截和访问,提高秘密图像信息的安全性以及保障传输过程的安全性。随着网络安全和信息安全的不断提高,越来越多的学者对其进行深入的研究,图像隐写也变得更加复杂和高级。

图像障写的定义

图像隐写是一种将秘密图像信息嵌入到载体图像中的技术,同时嵌入秘密信息的载密图像与载体图像在视觉上几乎没区别。隐写术是一种隐藏信息的方法,它不同于加密,加密是将数据转换为不可读或无意义的乱码数据形式,而隐写术是将数据隐藏在其他数据中,以使其在不引起怀疑的情况下传输。图像隐写可以在许多领域得到应用,例如数字水印、安全通信、网络安全等。

图你隐写的过程

图像隐写是一种将秘密图像信息嵌入到数字图像中的技术,以下是一般的图像隐写过程:
图像发送方:

基于混沌递归加密的图像隐写模型研究

像隐写方案对于输入的秘密图像要求的大小和格式,这个过程中可对秘密图像进行加密:
(2)选择载体图像:从图像库选择一张数字图像作为载体图像,它将被用来隐藏秘密图像;
(3)选择嵌入算法:选择一种图像隐写算法,如LSB、HUGO等,它将根据嵌入算法的规则将秘密图像嵌入到载体图像中,或选择通过神经网络模型作为嵌入模型,如StegGAN、DCGAN、Unet等:
(4)嵌入秘密信息:使用选择的图像隐写算法将秘密信息嵌入到载体图像中。通过这对载体图像的像素进行修改,嵌入秘密图像信息,得到用于传输的载密图像,载密图像仍保留载体图像的视觉效果和质量:
(5)图像发送:将嵌入秘密图像信息的载密图像在公开信道发送给图像接收方。

图像接收方:

(1)接收载密图像:从公开信道接收传输过来的载密图像:
(2)提取秘密信息:使用相对应的提取算法将嵌入在载密图像中的秘密图像提取出来。提取算法需要与嵌入算法兼容,以确保获得准确的提取图像:
(3)解密秘密信息:如果在对秘密图像进行嵌入操作前,对秘密图像进行了加密操作,则提取出秘密图像后需要使用相应的密钥对其进行解密,以获得原始的秘密图像;
(4)评估嵌入和提取效果:评估嵌入秘密信息后的载密图像和提取得到的原始秘密图像,以确保秘密图像隐藏可以被正确提取。

图像隐写的评价

当设计出一个图像隐写方案后,为了验证其有效性,需要对所提图像隐写方案进行评价,以下是图像隐写方案常见的主要评价指标:
(1)安全性:图像隐写方案的安全性是评价其优劣的重要指标之一。一个安全的图像隐写方案应该能够抵御各种攻击,例如隐写分析攻击、恶意插入攻击、盲水印攻击等。
(2)容量:图像隐写方案的容量是指能够隐藏在载体图像中的秘密信息量大小。一个好的图像隐写方案应该具有高容量,能够在不影响图像质量的前提下嵌入尽可能多的信息。
(3)隐蔽性:图像隐写方案的隐蔽性是指在图像中嵌入的信息是否能够被发现。一个好的图像隐写方案应该具有高隐蔽性,即嵌入的信息不容易被人发现,并且载密图像在整个传输过程中不容易被发觉。
总的来说,一个好的图像隐写方案应该具有高安全性、高容量、高隐蔽性。评价图像隐写方案的优劣需要从多个方面综合考虑,而不是单一的指标。

8.基于混沌系统的递归置乱加密算法

本小节提出的混沌系统的递归置乱加密算法是使用混沌系统生成序列,并基于该序列来对图像进行置乱操作。本研究选择的是一维Logistic 混沌系统,混沌系统的原理在第二章有所介绍,这里不再赘述。在这个基于混沌系统的置乱加密过程中引入递归的思想,递归地对图像进行置乱加密操作。
传统的置乱加密算法通常通过同等对待某些级别的数据来加密整个图像,例如位级、两位级(DNA级)、像素级和/或块级数据。重复加密过程,直到所有数据至少被加密一次。众所周知,很多重复的任务都可以通过引入递归的思想来解决。然而,现有的加密算法很少考虑使用这种策略进行加密。在这里,我们提出了一种基于递归思想的图像置乱加密算法。与传统的加密算法相比,基于递归的置乱加密算法可以增加加密的复杂度,通过递归调用,可以在同一个加密算法内部多次对数据进行处理,从而增加加密的复杂度,提高破解的难度;基于递归的置乱加密算法可以实现分层加密,递归加密可以将加密算法分成多层,每层的加密方式不同,从而增加破解的难度。
在这里插入图片描述

9.模型结构

为了解决秘密图像信息泄露的问题,提高图像隐写模型的安全性。本小节所提的图像隐写方案参考该博客的方案,进行简化,首先将要隐藏的秘密图像通过所提出的基于混沌系统的递归置乱加密算法加密后,将载体图像和经加密后的秘密图像传入上一章节使用的基于Transformer模型架构中,通过该模型架构将经加密后的秘密图像信息嵌入到载体图像中,得到最终用于在公开信道传输的载密图像。接收方收到载密图像后,通过提取网络得到经加密后的秘密图像,再通过图像加密操作的逆操作就可以得到未进行图像加密前的秘密图像。由于秘密图像的内容信息在嵌入到载体图像之前经过了加密,因此秘密图像信息的机密性得到了更好的保护。即使图像隐写模型的过程被破解,攻击者仍需破解本小节所提出的基于混沌系统的递归置乱图像加密才能得到秘密图像信息。将图像加密算法与图像隐写模型结合,进一步提高了图像传输的安全性,保证了图像信息传输的过程和传输的信息,同时增强了图像隐写方案中用于在公开信道传输的载密图像的隐蔽性,即便攻击者截获了载密图像并破解了图像隐写的操作过程,但因为得到的是一张乱码图像,就会觉得自己没有成功破解图像隐写的过程。图显示了本小节提出的基于Transformer和混沌递归加密的图像隐写模型的架构图。
在这里插入图片描述

10.系统整合

下图完整源码&环境部署视频教程&自定义UI界面

在这里插入图片描述

参考博客《基于混沌算法的图像加密解密系统》

11.参考文献


[1]谢国波,朱润盈.复合级联混沌的彩色图像加密算法[J].计算机工程与应用.2018,(8).DOI:10.3778/j.issn.1002-8331.1612-0045 .

[2]赵锋,吴成茂.自编码和超混沌映射相结合的图像加密算法[J].计算机辅助设计与图形学学报.2016,(1).DOI:10.3969/j.issn.1003-9775.2016.01.015 .

[3]董虎胜,陆萍,马小虎.基于CNN超混沌系统与扩展ZigZag的图像加密算法[J].计算机应用与软件.2013,(5).DOI:10.3969/j.issn.1000-386x.2013.05.038 .

[4]Cheng-Hung Chuang.A Steganography-Based Optical Image Encryption System Using RGB Channel Integration[J].电子科技学刊.2013,(1).DOI:10.3969/j.issn.1674-862X.2013.01.002 .

[5]Jinyuan Liu,Yong Wang,Qi Han,等.A Sensitive Image Encryption Algorithm Based on a Higher-Dimensional Chaotic Map and Steganography[J].International Journal of Bifurcation & Chaos.2022,32(1).DOI:10.1142/S0218127422500043 .

[6]Meng Lingzhuang,Liu Lianshan,Tian Gang,等.An adaptive reversible watermarking in IWT domain[J].Multimedia tools & applications.2020,80(1).711-735.DOI:10.1007/s11042-020-09686-9 .

[7]Jiming Zheng,Zheng Luo,Zhirui Tang.An Image Encryption Algorithm Based on Multichaotic System and DNA Coding[J].Discrete dynamics in nature & society.2020.2020DOI:10.1155/2020/5982743 .

[8]Xintao Duan,Kai Jia,Baoxia Li,等.Reversible Image Steganography Scheme Based on a U-Net Structure[J].IEEE Access.2019.79314-9323.

[9]Zhang, Ru,Dong, Shiqi,Liu, Jianyi.Invisible steganography via generative adversarial networks[J].Multimedia tools and applications.2019,78(7).8559-8575.DOI:10.1007/s11042-018-6951-z .

[10]Gao, Guangyong,Wan, Xiangdong,Yao, Shimao,等.Reversible data hiding with contrast enhancement and tamper localization for medical images[J].Information Sciences: An International Journal.2017.385/386250-265.DOI:10.1016/j.ins.2017.01.009 .

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1286217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node-red的节点离线安装

Node-red节点离线安装 前言 目前越来越高的数据安全的要求,因此我们很多的生产类服务器是无法进行在线化部署的,为了解决这一问题,我们需要在无法连接外部网络环境的情况下,实现Node-red的节点的安装,以满足项目的需…

el-dialog 垂直居中

写文章总是在想引言,怎么开头才会显的更加优雅,更加让读者朋友给我点赞。看到有人点赞,我就觉的进行技术经验分享是一件非常愉快的事情,可是打小作文写的不好不会组织语句,就喜欢直来直去。老师说让写春天的作文&#…

vue2 element-ui select下拉框 选择传递多个参数

<el-select v-model"select" slot"prepend" placeholder"请选择" change"searchPostFn($event,123)"> <el-option :label"item.ziDianShuJu" :value"{value:item.id, label:item.ziDianShuJu}" v-for&qu…

文件夹批量改名:轻松管理文件夹,随机重命名不求人

在日常生活和工作中&#xff0c;文件夹批量改名是一个常见的需求。当有大量的文件夹时&#xff0c;它们可能会变得混乱和难以管理。有时候要对大量的文件夹进行重命名&#xff0c;以便更好地组织和管理这些文件。手动重命名每个文件夹可能会非常耗时且容易出错。现在可以来看下…

印度股市荣登全球第四,释放了什么讯号?

KlipC报道&#xff1a;随着散户迅速增加&#xff0c;外国资金重新流入&#xff0c;自2020年3月大流行低点以来&#xff0c;截至当地时间12月4日&#xff0c;其印度股市总市值已经上涨到3.93万亿美元&#xff0c;仅次于美国、中国和日本。 值得一提的是&#xff0c;Sensex指数飙…

java springboot简单了解数据源实现 与 springboot内置数据源

之前 我们讲到的项目 数据库管理 用了三种技术 数据源管理方式 我们选择了: DruidDataSource 持久化技术: MyBatis-Plus / MyBatis 数据库: MySql 那么 我们在刚接触数据库连接时 是没用配置Druid的 那它有没有用数据源呢&#xff1f; 我们接触过的配置Druid的方式有两种 用…

CSS特效026:扇骨打开关闭的动画

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

xcode ——Instrumets(网络连接调试)使用

环境&#xff1a; instruments 使用只能在真机调试时使用&#xff0c;且真机系统必须ios15 点击debug 按钮——Network——Profile in Instruments 然后就可以看到如下面板 展开运行的项目&#xff0c;点击session下的域名&#xff0c;下方回出现该域名下的网络请求。点击Deve…

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube

目录 一、实验 1.Jenkins使用GitLab共享库实现后端项目Sonarqube 2.优化GitLab共享库 3.Jenkins使用GitLab共享库实现前端项目Sonarqube 二、问题 1.sonar-scanner 未找到命令 2.npm 未找到命令 一、实验 1.Jenkins使用GitLab共享库实现后端项目Sonarqube &#xff08…

现代版“田忌赛马”:IPMT如何实现资源利用最大化

摘要&#xff1a;在流程调整和产品重整过程中&#xff0c;IPMT发挥了至关重要的作用。IPMT是什么&#xff1f;它的职责到底是什么&#xff1f;每个公司必须要有IPMT吗&#xff1f; 1992年&#xff0c;IBM在激烈的市场竞争下&#xff0c;遭遇到了严重的财政困难&#xff0c;利润…

用js自定义一个(v-model)vModel双向绑定函数

vue中的v-model是双向绑定的, 我们自己用JavaScript实现一个双向绑定vModel函数。 // element 元素或者#id,.class,div 得是input标签 // data 对象 // 将要绑定property 对象中的key<input class"vmodel"/>function vModel(element, data, property) {if (…

外汇天眼:假冒、非法经营成常态?超60家外汇平台被拉黑

近期&#xff0c;全球范围内多个国家的金融监管机构纷纷发出警告&#xff0c;揭露一系列假冒、非法经营的外汇交易平台。比利时金融服务和市场管理局&#xff08;FSMA&#xff09;发现53家外汇平台涉嫌非法运营&#xff0c;而意大利CONSOB和英国金融行为监管局&#xff08;FCA&…

【Redis】Redis 的学习教程(十三)Redis 各场景

由于Redis 支持比较丰富的数据结构&#xff0c;因此他能实现的功能并不仅限于缓存&#xff0c;而是可以运用到各种业务场景中&#xff0c;开发出既简洁、又高效的系统 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

Ribbon 饥饿加载

Ribbon默认是采用懒加载&#xff0c;即第一次访问时才会去创建LoadBalanceClient&#xff0c;请求时间会很长而饥饿加载则会在项目启动时创建&#xff0c;降低第一次访问的耗时&#xff0c;通过下面配置开启饥饿加载: 一、懒加载 Ribbon 默认为懒加载即在首次启动Application…

防火墙 iptables的使用

目录 什么是防火墙 原理 代理 防火墙的工具 4表5列 五链&#xff1a;控制流量的时机 四个表&#xff1a;如何控制流量 ​编辑 iptables 软件 格式 选项 跳转 查iptables 的规则 添加规则 A I 删除规则 清空规则 替换规则 R 修改默认规则&#xff08;默…

vue2-省市县三级联动选择框

Json数据&#xff1a;https://yjy-oss-files.oss-cn-zhangjiakou.aliyuncs.com/tuxian/area.json 如何访问本地文件参考&#xff1a;vue-访问本地json文件_vue3读取json文件-CSDN博客 .vue文件&#xff1a; <template><select v-model"mailAddress1" style…

调查显示 IT 服务事件越来越频繁

事件管理平台提供商 Transposit 对美国 1,000 名 IT 运营、DevOps、站点可靠性工程 (SRE) 和平台工程专业人士进行的一项调查发现&#xff0c;超过三分之二 (67%) 的人发现故障率有所增加过去 12 个月中影响客户的服务事件的频率。 今天在Kubecon CloudNative会议上宣布的调查…

在 AlmaLinux 9.2 上安装Oracle Database 23c

在 AlmaLinux 9.2 上安装Oracle Database 23c 1. 安装 Oracle Database 23c2. 连接 Oracle Database 23c3. 重启启动后&#xff0c;手动启动数据库4. 重启启动后&#xff0c;手动启动 Listener5. 手动启动 Pluggable Database6. 自动启动 Pluggable Database7. 设置开机启动数据…

PDF控件Spire.PDF for .NET【转换】演示:将 SVG 转换为 PDF

SVG 是一种矢量图形文件格式&#xff0c;用于创建可缩放且不损失质量的图像。然而&#xff0c;PDF由于支持高质量打印、加密、数字签名等功能&#xff0c;更适合共享和打印。将SVG转换为PDF可以保证图像在不同设备和环境下都有良好的显示效果&#xff0c;并更好地保护知识产权。…

ubuntu启动kafka报错Could not create the Java Virtual Machine.

网上有两种方式&#xff0c;但是需要具体看自己的错误信息&#xff0c;我的错误信息如下: 这里大概是说要写入日志无权限&#xff0c;所以执行的时候&#xff0c;前面加一下sudo 执行成功。