漯河商城网站建设广州装修公司口碑最好的是哪家

diannao/2026/1/19 1:24:45/文章来源:
漯河商城网站建设,广州装修公司口碑最好的是哪家,中音阶梯网站谁家建设,网站联系我们的地图怎么做Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式#xff0c;这种形式不易被人直接识别。 Base64是一种很常见的编码规范#xff0c;其作用是将二进制序列转换为人类可读的ASCII字符序列#xff0c;常用在需用通过文本协议#xff08;比… Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式这种形式不易被人直接识别。 Base64是一种很常见的编码规范其作用是将二进制序列转换为人类可读的ASCII字符序列常用在需用通过文本协议比如HTTP和SMTP来传输二进制数据的情况下。Base64并不是加密解密算法尽管我们有时也听到使用Base64来加密解密的说法但这里所说的加密与解密实际是指编码encode和解码decode的过程其变换是非常简单的仅仅能够避免信息被直接识别。   原理 Base64算法主要是将给定的字符以字符编码(如ASCII码UTF-8码)对应的十进制数为基准做编码操作 1将给定的字符串以字符为单位转换为对应的字符编码。 2将获得字符编码转换为二进制 3对二进制码做分组转换每3个字节为一组转换为每4个6位二进制位一组不足6位时低位补0。这是一个分组变化的过程3个8位二进制码和4个6位二进制码的长度都是24位3*8 4*6 24。 4对获得的4-6二进制码补位向6位二进制码添加2位高位0组成4个8位二进制码。 5对获得的4-8二进制码转换为十进制码。 6将获得的十进制码转换为Base64字符表中对应的字符。 Base64编码表 索引 对应字符 索引 对应字符 索引 对应字符 索引 对应字符 0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 Y 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 12 M 29 d 46 u 63 / 13 N 30 e 47 v     14 O 31 f 48 w     15 P 32 g 49 x     16 Q 33 h 50 y       应用 Base64编码可用于在HTTP环境下传递较长的标识信息。在其他应用程序中也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时采用Base64编码具有不可读性即所编码的数据不会被人用肉眼所直接看到算是起到一个加密的作用。 然而标准的Base64并不适合直接放在URL里传输因为URL编码器会把标准Base64中的“/”和“”字符变为形如“%XX”的形式而这些“%”号在存入数据库时还需要再进行转换因为ANSI SQL中已将“%”号用作通配符。 为解决此问题可采用一种用于URL的改进Base64编码它不仅在末尾填充号并将标准Base64中的“”和“/”分别改成了“-”和“_”这样就免去了在URL编解码和数据库存储时所要作的转换避免了编码信息长度在此过程中的增加并统一了数据库、表单等处对象标识符的格式。 另有一种用于正则表达式的改进Base64变种它将“”和“/”改成了“!”和“-”因为“”,“*”以及前面在IRCu中用到的“[”和“]”在正则表达式中都可能具有特殊含义。 此外还有一些变种它们将“/”改为“_-”或“._”用作编程语言中的标识符名称或“.-”用于XML中的Nmtoken甚至“_:”用于XML中的Name。   算法实现 commons-codec开源包提供了对于Base64的实现推荐使用。 dependency   groupIdcommons-codec/groupId   artifactIdcommons-codec/artifactId   version1.10/version /dependency   范例 注在commons-codec包中的Base64这个类中提供了Base64的编码、解码方式。 其中encodeBase64提供的是标准的Base64编码方式encodeBase64URLSafe提供了URL安全的Base64编码方式将 和 /替换为 - 和 _。 package org.zp.javase.security.encrypt; import org.apache.commons.codec.binary.Base64; import java.io.UnsupportedEncodingException; public class Base64Demo {     public static void main(String[] args) throws UnsupportedEncodingException {         String url  https://www.baidu.com/s?wdBase64rsv_spt1rsv_iqid0xa9188d560005131fissp1f3rsv_bp0rsv_idx2ieutf-8tnbaiduhome_pgrsv_enter1rsv_sug31rsv_sug11rsv_sug7001rsv_sug21rsp0rsv_sug9es_2_1rsv_sug42153rsv_sug9;         // byte[] encoded Base64.encodeBase64(url.getBytes(UTF8)); // 标准的Base64编码         byte[] encoded Base64.encodeBase64URLSafe(url.getBytes(UTF8)); // URL安全的Base64编码         byte[] decoded Base64.decodeBase64(encoded);         System.out.println(url:  url);         System.out.println(encoded:  new String(encoded));         System.out.println(decoded:  new String(decoded));     } }   对称加密 算法简述 对称加密算法是应用较早的加密算法技术成熟。在对称加密算法中数据发信方将明文原始数据和加密密钥mi yao一起经过特殊加密算法处理后使其变成复杂的加密密文发送出去。收信方收到密文后若想解读原文则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密才能使其恢复成可读明文。在对称加密算法中使用的密钥只有一个发收信双方都使用这个密钥对数据进行加密和解密这就要求解密方事先必须知道加密密钥。   特点 优点 计算量小、加密速度快、加密效率高。 缺点 算法是公开的安全性得不到保证。 通信双方每次使用对称加密算法时都需要使用其他人不知道的惟一密钥这会使得通信双方所拥有的密钥数量呈几何级数增长密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难主要是因为密钥管理困难使用成本较高。 而与公钥、密钥加密算法比起来对称加密算法能够提供加密和认证却缺乏了签名功能使得使用范围有所缩小。   原理 对称加密要求加密与解密使用同一个密钥解密是加密的逆运算。由于加密、解密使用同一个密钥这要求通信双方必须在通信前商定该密钥并妥善保存该密钥。 对称加密体制分为两种 一种是对明文的单个位或字节进行运算称为流密码也称为序列密码 一种是把明文信息划分为不同的组或块结构分别对每个组或块进行加密、解密称为分组密码。   假设甲乙方作为通信双方。假定甲乙双方在消息传递前已商定加密算法欲完成一次消息传递需要经过如下步骤。 工作模式 以DES算法的工作模式为例DES算法根据其加密算法所定义的明文分组的大小56位将数据分割成若干56位的加密区块再以加密区块为单位分别进行加密处理。如果最后剩下不足一个区块的大小称之为短块。短块的处理方法有填充法、流密码加密法、密文挪用技术。 根据数据加密时每个加密区块见得关联方式来区分可以分为以下种工作模式 (1)  电子密码本模式(Electronic Code Book, ECB) 用途适合加密密钥随机数等短数据。例如安全地传递DES密钥ECB是最合适的模式。 (2)  密文链接模式(Cipher Booki Chaining, CBC) 用途可加密任意长度的数据适用于计算产生检测数据完整性的消息认证MAC。 (3)  密文反馈模式(Cipher Feed Back, CFB) 用途因错误传播无界可以用于检查发现明文密文的篡改。 (4)  输出反馈模式(Output Feed Back, OFB) 用途使用于加密冗余性较大的数据比如语音和图像数据。 AES算法除了以上4中模式外还有一种新的工作模式 (5)  计数器模式(Counter, CTR) 用途适用于各种加密应用。 本文对于各种工作模式的原理展开描述。个人认为作为工程应用了解其用途即可。   填充方法 Java中对称加密对于短块的处理一般是采用填充方式。 常采用的是NoPadding不填充、Zeros填充0填充、PKCS5Padding填充。 ZerosPadding 方式全部填充为0的字节 结果如下 F1 F2 F3 F4 F5 F6 F7 F8 //第一块 F9 00 00 00 00 00 00 00 //第二块   PKCS5Padding 方式每个填充的字节都记录了填充的总字节数 结果如下 F1 F2 F3 F4 F5 F6 F7 F8 //第一块 F9 07 07 07 07 07 07 07 //第二块   常用算法 对称加密算法主要有DES、3DESTripleDES、AES、IDEA、RC2、RC4、RC5和Blowfish等。   算法实现 基于密钥加密的流程DES、DESede、AES和IDEA DES、DESede、AES和IDEA等算法都是基于密钥加密的对称加密算法它们的实现流程也基本一致。步骤如下 1生成密钥 KeyGenerator kg KeyGenerator.getInstance(DES);SecureRandom random  new SecureRandom();kg.init(random);SecretKey secretKey kg.generateKey(); 建议使用随机数来初始化密钥的生成。   2初始化密码对象 Cipher cipher Cipher.getInstance(DES/ECB/PKCS5Padding);cipher.init(Cipher.ENCRYPT_MODE, secretKey); ENCRYPT_MODE加密模式 DECRYPT_MODE解密模式   3执行 String plaintext  Hello World; byte[] ciphertext cipher.doFinal(plaintext.getBytes());   完整实例 一个完整的DES加密解密范例 import org.bouncycastle.util.encoders.Base64; import org.zp.javase.security.encode.Encode; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.IvParameterSpec; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.Key; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.SecureRandom;/**  * Title DESCoder  * Description DES安全编码是经典的对称加密算法。密钥仅56位且迭代次数偏少。已被视为并不安全的加密算法。  * Author victor * Date 2016年7月14日  */public class DESCoder implements Encode {     public static final String KEY_ALGORITHM_DES  DES;     public static final String CIPHER_DES_DEFAULT  DES;     public static final String CIPHER_DES_ECB_PKCS5PADDING  DES/ECB/PKCS5Padding; // 算法/模式/补码方式     public static final String CIPHER_DES_CBC_PKCS5PADDING  DES/CBC/PKCS5Padding;     public static final String CIPHER_DES_CBC_NOPADDING  DES/CBC/NoPadding;     private static final String SEED  %%%today is nice***; // 用于生成随机数的种子     private Key key;     private Cipher cipher;     private String transformation;     public DESCoder() throws NoSuchAlgorithmException, NoSuchPaddingException, NoSuchProviderException {         this.key  initKey();         this.cipher  Cipher.getInstance(CIPHER_DES_DEFAULT);         this.transformation  CIPHER_DES_DEFAULT;     }     public DESCoder(String transformation)             throws NoSuchAlgorithmException, NoSuchPaddingException, NoSuchProviderException {         this.key  initKey();         this.cipher  Cipher.getInstance(transformation);         this.transformation  transformation;     }     /**      * Title decrypt      * Description 解密      * Author victor     * Date 2016年7月20日      * param input 密文      * return byte[] 明文      * throws InvalidKeyException      * throws IllegalBlockSizeException      * throws BadPaddingException      * throws InvalidAlgorithmParameterException      */     public byte[] decrypt(byte[] input) throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException,             InvalidAlgorithmParameterException {         if (transformation.equals(CIPHER_DES_CBC_PKCS5PADDING) || transformation.equals(CIPHER_DES_CBC_NOPADDING)) {             cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(getIV()));         } else {             cipher.init(Cipher.DECRYPT_MODE, key);         }         return cipher.doFinal(input);     }     /**      * Title encrypt      * Description 加密      * Author victor     * Date 2016年7月20日      * param input 明文      * return byte[] 密文      * throws InvalidKeyException      * throws IllegalBlockSizeException      * throws BadPaddingException      * throws InvalidAlgorithmParameterException      */     public byte[] encrypt(byte[] input) throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException,             InvalidAlgorithmParameterException {         if (transformation.equals(CIPHER_DES_CBC_PKCS5PADDING) || transformation.equals(CIPHER_DES_CBC_NOPADDING)) {             cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(getIV()));         } else {             cipher.init(Cipher.ENCRYPT_MODE, key);         }         return cipher.doFinal(input);     }     /**      * Title initKey      * Description 根据随机数种子生成一个密钥      * Author victor      * Date 2016年7月14日      * Return Key      * throws NoSuchAlgorithmException      * throws NoSuchProviderException      */     private Key initKey() throws NoSuchAlgorithmException, NoSuchProviderException {         // 根据种子生成一个安全的随机数         SecureRandom secureRandom  null;         secureRandom  new SecureRandom(SEED.getBytes());         KeyGenerator keyGen KeyGenerator.getInstance(KEY_ALGORITHM_DES);         keyGen.init(secureRandom);         return keyGen.generateKey();     }     private byte[] getIV() {         String iv  01234567; // IV length: must be 8 bytes long         return iv.getBytes();     }     public static void main(String[] args) throws Exception {         DESCoder aes  new DESCoder(CIPHER_DES_CBC_PKCS5PADDING);         String msg  Hello World!;         System.out.println(原文:   msg);         byte[] encoded aes.encrypt(msg.getBytes(UTF8));         String encodedBase64 Base64.toBase64String(encoded);         System.out.println(密文:   encodedBase64);         byte[] decodedBase64 Base64.decode(encodedBase64);         byte[] decoded aes.decrypt(decodedBase64);         System.out.println(明文:   new String(decoded));     } } 结果 原文: Hello World!密文: TtnEu9ezNQtxFKpmq/37Qw明文: Hello World!   基于口令加密的流程PBE DES、DESede、AES、IDEA这几种算法的应用模型几乎如出一辙。 但是并非所有对称加密算法都是如此。 基于口令加密(Password Based Encryption, PBE)是一种基于口令加密的算法。其特点是口令由用户自己掌管采用随机数这里叫做盐杂凑多重加密等方法保证数据的安全性。 PBE没有密钥概念密钥在其他对称加密算法中是经过计算得出的PBE则使用口令替代了密钥。 流程   步骤如下 1产生盐 SecureRandom secureRandom  new SecureRandom(); byte[] salt secureRandom.generateSeed(8); // 盐长度必须为8字节   2根据密码产生Key String password  123456;PBEKeySpec keySpec  new PBEKeySpec(password.toCharArray());SecretKeyFactory keyFactory SecretKeyFactory.getInstance(KEY_ALGORITHM);SecretKey secretKey keyFactory.generateSecret(keySpec);   3初始化加密或解密对象 PBEParameterSpec paramSpec  new PBEParameterSpec(salt, ITERATION_COUNT);Cipher cipher Cipher.getInstance(KEY_ALGORITHM);cipher.init(Cipher.ENCRYPT_MODE, secretKey, paramSpec);   4执行 byte[] plaintext  Hello World.getBytes(); byte[] ciphertext cipher.doFinal(plaintext);   非对称加密 算法简述 非对称加密算法和对称加密算法的主要差别在于非对称加密算法用于加密和解密的密钥是不同的。一个公开称为公钥public key一个保密称为私钥private key。因此非对称加密算法也称为双钥加密算法或公钥加密算法。   特点 优点 非对称加密算法解决了对称加密算法的密钥分配问题并极大地提高了算法安全性。   缺点 算法比对称算法更复杂因此加密、解密速度都比对称算法慢很多。   原理 非对称加密算法实现机密信息交换的基本过程是甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。 另一方面甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方乙方再用自己的私匙对数据进行验证。 甲方只能用其私钥解密由其公钥加密后的任何信息。 非对称加密算法的保密性比较好它消除了最终用户交换密钥的需要。   常用算法 DH(Diffie-Hellman密钥交换算法)、RSA   算法实现 完整范例 import org.apache.commons.codec.binary.Base64; import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; public class RSACoder {     private final static String KEY_ALGORITHM  RSA;     private KeyPair keyPair;     public RSACoder() throws Exception {         this.keyPair  initKeyPair();     }     public byte[] encryptByPublicKey(byte[] plaintext, byte[] key) throws Exception {         X509EncodedKeySpec keySpec  new X509EncodedKeySpec(key);         KeyFactory keyFactory KeyFactory.getInstance(KEY_ALGORITHM);         PublicKey publicKey keyFactory.generatePublic(keySpec);         Cipher cipher Cipher.getInstance(keyFactory.getAlgorithm());         cipher.init(Cipher.ENCRYPT_MODE, publicKey);         return cipher.doFinal(plaintext);     }     public byte[] encryptByPrivateKey(byte[] plaintext, byte[] key) throws Exception {         PKCS8EncodedKeySpec keySpec  new PKCS8EncodedKeySpec(key);         KeyFactory keyFactory KeyFactory.getInstance(KEY_ALGORITHM);         PrivateKey privateKey keyFactory.generatePrivate(keySpec);         Cipher cipher Cipher.getInstance(keyFactory.getAlgorithm());         cipher.init(Cipher.ENCRYPT_MODE, privateKey);         return cipher.doFinal(plaintext);     }     public byte[] decryptByPublicKey(byte[] ciphertext, byte[] key) throws Exception {         X509EncodedKeySpec keySpec  new X509EncodedKeySpec(key);         KeyFactory keyFactory KeyFactory.getInstance(KEY_ALGORITHM);         PublicKey publicKey keyFactory.generatePublic(keySpec);         Cipher cipher Cipher.getInstance(keyFactory.getAlgorithm());         cipher.init(Cipher.DECRYPT_MODE, publicKey);         return cipher.doFinal(ciphertext);     }     public byte[] decryptByPrivateKey(byte[] ciphertext, byte[] key) throws Exception {         PKCS8EncodedKeySpec keySpec  new PKCS8EncodedKeySpec(key);         KeyFactory keyFactory KeyFactory.getInstance(KEY_ALGORITHM);         PrivateKey privateKey keyFactory.generatePrivate(keySpec);         Cipher cipher Cipher.getInstance(keyFactory.getAlgorithm());         cipher.init(Cipher.DECRYPT_MODE, privateKey);         return cipher.doFinal(ciphertext);     }     private KeyPair initKeyPair() throws Exception {         // KeyPairGenerator类用于生成公钥和私钥对基于RSA算法生成对象         KeyPairGenerator keyPairGen KeyPairGenerator.getInstance(KEY_ALGORITHM);         // 初始化密钥对生成器密钥大小为1024位         keyPairGen.initialize(1024);         // 生成一个密钥对         return keyPairGen.genKeyPair();     }     public static void main(String[] args) throws Exception {         String msg  Hello World!;         RSACoder coder  new RSACoder();         // 私钥加密公钥解密         byte[] ciphertext coder.encryptByPrivateKey(msg.getBytes(UTF8), coder.keyPair.getPrivate().getEncoded());         byte[] plaintext coder.decryptByPublicKey(ciphertext, coder.keyPair.getPublic().getEncoded());         // 公钥加密私钥解密         byte[] ciphertext2 coder.encryptByPublicKey(msg.getBytes(), coder.keyPair.getPublic().getEncoded());         byte[] plaintext2 coder.decryptByPrivateKey(ciphertext2, coder.keyPair.getPrivate().getEncoded());         System.out.println(原文  msg);         System.out.println(公钥  Base64.encodeBase64URLSafeString(coder.keyPair.getPublic().getEncoded()));         System.out.println(私钥  Base64.encodeBase64URLSafeString(coder.keyPair.getPrivate().getEncoded()));         System.out.println( 私钥加密公钥解密 );         System.out.println(密文  Base64.encodeBase64URLSafeString(ciphertext));         System.out.println(明文  new String(plaintext));         System.out.println( 公钥加密私钥解密 );         System.out.println(密文  Base64.encodeBase64URLSafeString(ciphertext2));         System.out.println(明文  new String(plaintext2));     } } 结果 原文Hello World!公钥MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVN2mWAMdatpo2l8dwavaX2VC8mRleVTdjwjyahsyCE6UxkdqHsKD6Ecq3OBbuJhEfHxnr7MAD_zoE6zalFs7_si09XTgpVFsFCztPXJpPw-rpQdvaaxYEXJHkY07M_DBrxh1URg2gQl9dEDaruIFrZ12ugTwwEkLA1K_LN7yZrwIDAQAB私钥MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJU3aZYAx1q2mjaXx3Bq9pfZULyZGV5VN2PCPJqGzIITpTGR2oewoPoRyrc4Fu4mER8fGevswAP_OgTrNqUWzv-yLT1dOClUWwULO09cmk_D6ulB29prFgRckeRjTsz8MGvGHVRGDaBCX10QNqu4gWtnXa6BPDASQsDUr8s3vJmvAgMBAAECgYBvU1M8LcKOJFQzzNNoRPVLX0AEJXkuzwcvL1hFtbJYjc2eiQHwYFAJokKKpZc-ADqf7HVLdmvfz4h66P3w925hYHjSF3cs6jiibI7fc9lrdrJLMpv44phPlRCiIanD-U6pyN3bZxRl4Giuz5uGL0SVU6Dxh2Sw7mtnvUBbHCyyaQJBAOixpR-t81Qnpdy4jlbZL8ufTTF1TzlSh0NEDB4tlpHlVolVmZB2M-rdJ3nP8fJXazdsGZMP0q38vgiN2HHMtxsCQQCkKWAaA6KxKNbj0mJDSP1p4qUJ4EAcgXBz4B_PKMZa3ZU2CdmFlhlLRRTOIjZX2VC6IjHKWssa-3V2EqBzCSz9AkBsiK9kH1anofaTBOIfUB4i86KltvnE2uGMVmjwioL4eefrFqoR35BHs-99uag4SN4Rc7JaDb9Ot9xLUR3rtniRAkB8dFXEQx9Teie4HmaapjpgzQ_b9eQE-GjdoHvdHQeMGdMmXb9IVGwmsV-9ixhx73IROx1OURkMArmhYyu7KqitAkBkeQ-7AYOIROJnTUSQTMUELUmZFF1Io_SJGXyRYLgDqz7JCmmhfH7sNm8Gcn6f2VWg-U2D9-G5IHO-vHfz2DS6  私钥加密公钥解密 密文U2otXypy1Fg4wcXK187xAuOxWM88oORVDJfaNxvG74Q_rqZ-sT4fEZYLZO80KmsWiufkJbD9Gskgkg7dRPRCwG90pRaU3PD9_sTmksN0v8MUwCX2p80zUeG3gWU6BJwMMUZrltJaHFbKn-BhzoNrn3Q-4BJA8lt6-cKtH0TPeN4明文Hello World!  公钥加密私钥解密 密文O_rknvo12qaFfWieyTI_Ay8_ph49y3V4jJVs1BykpI81GM3ozCPSnOjHbtdWdjPtgJHFfCjbspAnIT2eM4PtJldIJg6k_2HZCmCCaheUj2pxcvkrhb6GdhSlH-K2FhFGAnlxUAp-3tZpYpxzAteEw1-suldelHdikrCV_uXxAEM明文Hello World!   术语 明文(Plaintext)指待加密信息。明文可以是文本文件、图片文件、二进制数据等。 密文(Ciphertext)指经过加密后的明文。密文通常以文本、二进制等形式存在。 加密(Encryption)指将明文转换为密文的过程。 解密(Decryption)指将密文转换为明文的过程。 加密密钥(Encryption Key)指通过加密算法进行加密操作用的密钥。 解密密钥(Decryption Key)指通过解密算法进行解密操作用的密钥。 信道(Channel)通信的通道是信号传输的媒介。 本文转自静默虚空博客园博客原文链接http://www.cnblogs.com/jingmoxukong/p/5688306.html如需转载请自行联系原作者

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

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

相关文章

做免费导航网站网站建设设计书任务书

2.2.1 目的 设计结构分析的目的是将设计识别和分解为系统、子系统、组件和零件,以便进行技术风险分析。其主要目标包括: 可视化分析范围结构化表示:方块图、边界图、数字模型、实体零件识别设计接口、交互作用和间隙促进顾客和供应商工程团队之间的协作(接口责任)为功能分…

西安便宜做网站苏州seo排名优化课程

319. 灯泡开关 初始时有 n 个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭一个。 第三轮,你每三个灯泡就切换一个灯泡的开关(即,打开变关闭,关闭变打开&#xff0…

关于幼儿建设网站ppt模板定制软件开发软件

在WPF MVVM&#xff08;模型-视图-视图模型&#xff09;架构中&#xff0c;数据绑定是实现UI与后端逻辑分离的关键特性。为了使UI能够响应后端数据的变化&#xff0c;通常需要用到特定的集合类型。在WPF中&#xff0c;最常见的两种集合类型是List< T>和ObservableCollect…

兰州企业做网站湖北企业网站建设哪家好

一、本文介绍 本文给大家带来的改进机制是QualityFocalLoss,其是一种CLS分类损失函数,它的主要创新是将目标的定位质量(如边界框与真实对象的重叠度量,例如IoU得分)直接融合到分类损失中,形成一个联合表示。这种方法能够解决传统目标检测中分类与定位任务之间存在的不一…

网站上做烟花效果花生壳域名注册官网

光子晶体科技 ABeamStartUp 光子透明芯片 显示技术 光学材料 近日&#xff0c;ABeam 旗下德硕管理咨询&#xff08;深圳&#xff09;有限公司&#xff08;以下简称“ABeam-SZ”&#xff09;新创部门一行拜访了深圳光子晶体科技有限公司&#xff08;以下简称“光子晶体科技”…

香奈儿网站建设策划书东莞企业建站平台

此题然让本人纠结了很久&#xff0c;真的好多坑。。。。果然还是太菜了。 完整代码以及思路解析(在注释中) #include <iostream> using namespace std; int main() {string num;cin>>num; int count0;int w1;for(int i0;i<10;i){if((i!1)&&(i!5)) //坑…

网站其它方面seo情况山西企业建站方案

补充知识1 内存的本质是对数据的临时存储 内存与磁盘进行交互时&#xff0c; 最小单位是4kb叫做页框(内存)和页帧(磁盘) 也就是&#xff0c; 如果我们要将磁盘的内容加载到内存中&#xff0c; 可是文件大小只有1kb&#xff0c; 我们也要拿出4kb来存他&#xff0c; 多余的就直…

广州专门做网站的公司有哪些wordpress 版本

最近学习hadoop&#xff0c;在替换配置文件的时候&#xff0c;发现老是报错&#xff0c;没有权限替换。我们知道如何改变文件的用户组与拥有者了&#xff0c;那么&#xff0c;什么时候要使用chown或chgrp呢&#xff1f;或许你会觉得奇怪吧&#xff1f;是的&#xff0c;确实有时…

付第三期网站建设费的账务处理成都科技网站建设咨询

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

建网站过程中国建设网上银行登录

给大家梳理了一些关于高项论文评分的准则&#xff0c;虽然不是官方版&#xff0c;但是只要此刻正在阅读的你能达到其中的标准&#xff0c;那基本论文也就达到了考试要求的标准了。 一、论文评分细则一 论文满分是75分&#xff0c;论文评分可分为优良、及格与不及格3个档次。评…

做蛋糕网站的优点家政服务网站建设

http://blog.csdn.net/happy4nothing/article/details/376604#_Toc101751894

电子商务网站的开发流程包括wordpress换编辑器

大家好&#xff0c;我是若川。上一篇写的是&#xff1a;初学者也能看懂的 Vue3 源码中那些实用的基础工具函数。今天再分享一篇 Vue 3.2 的文章。学习源码整体架构系列、年度总结、JS基础系列背景Vue 3 正式发布距今已经快一年了&#xff0c;相信很多小伙伴已经在生产环境用上了…

什么人需要网站建设自己做网站 发布视频

数字音频光端机在通信系统中可以说是应用非常广泛&#xff0c;特别是在安防系统、智能交通监控系统、远程多媒体教学/ 校园监控、长距离广播电视传输系统、楼宇控制系统等&#xff0c;可以说我们的日常通讯是离不开音频光端机的。接下来杭州飞畅的小编就来为大家详细介绍下音频…

六安服装网站建设地址聚合页做的比较好的教育网站

传送门 将曼哈顿距离转换成切比雪夫距离&#xff0c;现在就是求max(∣x1−x2∣,∣y1−y2∣)max(|x_1-x_2|,|y_1-y_2|)max(∣x1​−x2​∣,∣y1​−y2​∣)&#xff0c;显然我们可以将x,yx,yx,y分开考虑&#xff0c;下面以xxx为例。 考虑一段区间内不同门派的最大值和最小值&am…

六安招聘网天津做网站seo的

题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 **注意&#xff1a;**最终&#xf…

北京朝阳建站优化直播类app开发公司

接着Struts2_3_day的讲 注:使用Struts2的< s:debug>< /s:debug>就可获取数据储存的分布图 StrutsPrepareAndExecuteFilter都会创建一个ActionContext和ValueStack对象, 所以Struts2的数据存储分为两类: ActionMap(contextMap)以及ValueStack; ActionMap中都是以m…

招聘网站怎么做吸引人王烨然盈盈

目录 Zookeeper1 启动单个Zookeeper实例1.1 下载Zookeeper安装包并解压1.2 添加环境变量1.3 修改默认配置1.4 新建数据存储目录和日志目录1.5 启动Zookeeper1.6 停止Zookeeper 2 搭建Zookeeper集群2.1 新建集群目录2.2 配置环境变量2.3 创建节点目录2.4 修改配置2.5 创建节点ID…

温州专业手机网站制作哪家便宜威海网站制作

欢迎关注【CSDN云计算】公众号——国内专业的云计算服务平台&#xff0c;平台内详细为您介绍什么叫云计算、云计算技术以及云计算概念和应用。 CSDN云计算作为国内专业的云计算服务平台&#xff0c;提供云计算、大数据、虚拟化、数据中心、OpenStack、CloudStack、机器学习、智…

wix网站做图片能折叠吗WordPress文章收录代码

参见英文答案 > The server time zone value ‘AEST’ is unrecognized or represents more than one time zone????????????????????????????????????9个我的问题MySQL连接器“服务器时区值中欧时间”无法识别或代表多个时区.该项目小…

汉口网站制作公司免费看电视的网站

http://www.cnblogs.com/cxjchen/p/3148582.html 单例模式 单例模式&#xff0c;可以说设计模式中最常应用的一种模式了&#xff0c;据说也是面试官最喜欢的题目。但是如果没有学过设计模式的人&#xff0c;可能不会想到要去应用单例模式&#xff0c;面对单例模式适用的情况&am…