确定性随机数发生器测试向量——DRBG-HMAC-SHA256

2023-10-28 18:18

本文主要是介绍确定性随机数发生器测试向量——DRBG-HMAC-SHA256,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

结构体定义

测试用基本量

DRBG-HMAC-SHA256测试数据


结构体定义


//DRBG测试中用, 因测试使用数据有很多相同之处
typedef struct dat_st
{
    int        len;
    char *    dat;
}tvstr;

//DRBG的测试向量
typedef struct drbg_test_vector_st 
{    
    char *    inf;            //测试向量的附加信息说明
    int        alg;            //DRBG算法
    int        prflag;            //prediction_resistance_flag: 1 = ENABLED; 0 = NOT ENABLED
    tvstr *    entropy_init;    //EntropyInput 初始化时的熵
    tvstr *    entropy_reseed1;//EntropyInput1 (for Reseed1) 第次reseed时的熵
    tvstr *    entropy_reseed2;//EntropyInput2 (for Reseed2) 第次reseed时的熵
    tvstr *    nonce;            //Nonce
    tvstr *    personal;         //PersonalizationString
    tvstr *    additional1;     //AdditionalInput 1
    tvstr *    additional2;    //AdditionalInput 2
    int        rlen1;        
    char *    gen_rnd1;        //generate rand val 1
    int        rlen2;        
    char *    gen_rnd2;        //generate rand val 1 
}DRBGTV;//DRBG的测试向量

测试用基本量


tvstr Entropy_032 = 
{
    32,
    "00010203 04050607"
    "08090A0B 0C0D0E0F 10111213 14151617 18191A1B 1C1D1E1F",
};


tvstr Entropy_040 = 
{
    40,
    "00010203 04050607 08090A0B 0C0D0E0F"
    "10111213 14151617 18191A1B 1C1D1E1F 20212223 24252627",
};
tvstr Entropy_048 = 
{
    48,
    "00010203 04050607 08090A0B 0C0D0E0F 10111213 14151617"
    "18191A1B 1C1D1E1F 20212223 24252627 28292A2B 2C2D2E2F",
};

tvstr Entropy1_032 = 
{
    32,
    "80818283 84858687"
    "88898A8B 8C8D8E8F 90919293 94959697 98999A9B 9C9D9E9F",
};

tvstr Entropy1_040 = 
{
    40,
    "80818283 84858687 88898A8B 8C8D8E8F"
    "90919293 94959697 98999A9B 9C9D9E9F A0A1A2A3 A4A5A6A7",
};

tvstr Entropy1_048 = 
{
    48,
    "80818283 84858687 88898A8B 8C8D8E8F 90919293 94959697"
    "98999A9B 9C9D9E9F A0A1A2A3 A4A5A6A7 A8A9AAAB ACADAEAF",
};

tvstr Entropy2_032 = 
{
    32,
    "C0C1C2C3 C4C5C6C7"
    "C8C9CACB CCCDCECF D0D1D2D3 D4D5D6D7 D8D9DADB DCDDDEDF",
};

tvstr Entropy2_040 = 
{
    40,
    "C0C1C2C3 C4C5C6C7 C8C9CACB CCCDCECF"
    "D0D1D2D3 D4D5D6D7 D8D9DADB DCDDDEDF E0E1E2E3 E4E5E6E7",
};

tvstr Entropy2_048 = 
{
    48,
    "C0C1C2C3 C4C5C6C7 C8C9CACB CCCDCECF D0D1D2D3 D4D5D6D7"
    "D8D9DADB DCDDDEDF E0E1E2E3 E4E5E6E7 E8E9EAEB ECEDEEEF",
};


tvstr Personal_032 = 
{
    32,
    "40414243 44454647"
    "48494A4B 4C4D4E4F 50515253 54555657 58595A5B 5C5D5E5F",
};
tvstr Personal_040 = 
{
    40,
    "40414243 44454647 48494A4B 4C4D4E4F"
    "50515253 54555657 58595A5B 5C5D5E5F 60616263 64656667",
};
tvstr Personal_048 = 
{
    48,
    "40414243 44454647 48494A4B 4C4D4E4F 50515253 54555657"
    "58595A5B 5C5D5E5F 60616263 64656667 68696A6B 6C6D6E6F",
};

tvstr Additional1_032 = 
{
    32,
    "60616263 64656667"
    "68696A6B 6C6D6E6F 70717273 74757677 78797A7B 7C7D7E7F",
};
tvstr Additional1_040 = 
{
    40,
    "60616263 64656667 68696A6B 6C6D6E6F"
    "70717273 74757677 78797A7B 7C7D7E7F 80818283 84858687",
};
tvstr Additional1_048 = 
{
    48,
    "60616263 64656667 68696A6B 6C6D6E6F 70717273 74757677"
    "78797A7B 7C7D7E7F 80818283 84858687 88898A8B 8C8D8E8F",
};

tvstr Additional2_032 = 
{
    32,
    "A0A1A2A3 A4A5A6A7"
    "A8A9AAAB ACADAEAF B0B1B2B3 B4B5B6B7 B8B9BABB BCBDBEBF",
};
tvstr Additional2_040 = 
{
    40,
    "A0A1A2A3 A4A5A6A7 A8A9AAAB ACADAEAF"
    "B0B1B2B3 B4B5B6B7 B8B9BABB BCBDBEBF C0C1C2C3 C4C5C6C7",
};
tvstr Additional2_048 = 
{
    48,
    "A0A1A2A3 A4A5A6A7 A8A9AAAB ACADAEAF B0B1B2B3 B4B5B6B7"
    "B8B9BABB BCBDBEBF C0C1C2C3 C4C5C6C7 C8C9CACB CCCDCECF",
};

tvstr Entropy_055=
{
    55,  
    "000102 03040506"
    "0708090A 0B0C0D0E 0F101112 13141516 1718191A 1B1C1D1E"
    "1F202122 23242526 2728292A 2B2C2D2E 2F303132 33343536",
};
tvstr Entropy_111 =
{
    111,
    "000102 03040506 0708090A 0B0C0D0E"
    "0F101112 13141516 1718191A 1B1C1D1E 1F202122 23242526"
    "2728292A 2B2C2D2E 2F303132 33343536 3738393A 3B3C3D3E"
    "3F404142 43444546 4748494A 4B4C4D4E 4F505152 53545556"
    "5758595A 5B5C5D5E 5F606162 63646566 6768696A 6B6C6D6E",
};


tvstr Entropy1_055 =
{
    55,  
    "808182 83848586"
    "8788898A 8B8C8D8E 8F909192 93949596 9798999A 9B9C9D9E"
    "9FA0A1A2 A3A4A5A6 A7A8A9AA ABACADAE AFB0B1B2 B3B4B5B6",
};  
tvstr Entropy1_111 =
{
    111,
    "808182 83848586 8788898A 8B8C8D8E"
    "8F909192 93949596 9798999A 9B9C9D9E 9FA0A1A2 A3A4A5A6"
    "A7A8A9AA ABACADAE AFB0B1B2 B3B4B5B6 B7B8B9BA BBBCBDBE"
    "BFC0C1C2 C3C4C5C6 C7C8C9CA CBCCCDCE CFD0D1D2 D3D4D5D6"
    "D7D8D9DA DBDCDDDE DFE0E1E2 E3E4E5E6 E7E8E9EA EBECEDEE",
};


tvstr Entropy2_055 =
{
    55,   
    "C0C1C2 C3C4C5C6"
    "C7C8C9CA CBCCCDCE CFD0D1D2 D3D4D5D6 D7D8D9DA DBDCDDDE"
    "DFE0E1E2 E3E4E5E6 E7E8E9EA EBECEDEE EFF0F1F2 F3F4F5F6",
};
tvstr Entropy2_111 =
{
    111,
    "C0C1C2 C3C4C5C6 C7C8C9CA CBCCCDCE"
    "CFD0D1D2 D3D4D5D6 D7D8D9DA DBDCDDDE DFE0E1E2 E3E4E5E6"
    "E7E8E9EA EBECEDEE EFF0F1F2 F3F4F5F6 F7F8F9FA FBFCFDFE"
    "FF000102 03040506 0708090A 0B0C0D0E 0F101112 13141516"
    "1718191A 1B1C1D1E 1F202122 23242526 2728292A 2B2C2D2E",
};


tvstr Nonce05 = { 5, "20 21222324" };                        //用于DRBG-HASH-SHA1
tvstr Nonce07 = { 7, "202122 23242526"};                    //用于DRBG-HASH-SHA224
tvstr Nonce08 = { 8, "20212223 24252627"};                    //用于DRBG-HASH-SHA256等
tvstr Nonce12 = {12, "20212223 24252627 28292A2B"};            //用于DRBG-HASH-SHA384等
tvstr Nonce16 = {16, "20212223 24252627 28292A2B 2C2D2E2F"};//用于DRBG-HASH-SHA512等


tvstr Personal_055 =
{
    55, 
    "404142 43444546"
    "4748494A 4B4C4D4E 4F505152 53545556 5758595A 5B5C5D5E"
    "5F606162 63646566 6768696A 6B6C6D6E 6F707172 73747576",
};
tvstr Personal_111 =
{
    111, 
    "404142 43444546 4748494A 4B4C4D4E"
    "4F505152 53545556 5758595A 5B5C5D5E 5F606162 63646566"
    "6768696A 6B6C6D6E 6F707172 73747576 7778797A 7B7C7D7E"
    "7F808182 83848586 8788898A 8B8C8D8E 8F909192 93949596"
    "9798999A 9B9C9D9E 9FA0A1A2 A3A4A5A6 A7A8A9AA ABACADAE",
};


tvstr Additional1_055 =
{
    55,
    "606162 63646566"
    "6768696A 6B6C6D6E 6F707172 73747576 7778797A 7B7C7D7E"
    "7F808182 83848586 8788898A 8B8C8D8E 8F909192 93949596",
};
tvstr Additional1_111 =
{
    111, 
    "606162 63646566 6768696A 6B6C6D6E"
    "6F707172 73747576 7778797A 7B7C7D7E 7F808182 83848586"
    "8788898A 8B8C8D8E 8F909192 93949596 9798999A 9B9C9D9E"
    "9FA0A1A2 A3A4A5A6 A7A8A9AA ABACADAE AFB0B1B2 B3B4B5B6"
    "B7B8B9BA BBBCBDBE BFC0C1C2 C3C4C5C6 C7C8C9CA CBCCCDCE"
};


tvstr Additional2_055 =
{
    55,
    "A0A1A2 A3A4A5A6"
    "A7A8A9AA ABACADAE AFB0B1B2 B3B4B5B6 B7B8B9BA BBBCBDBE"
    "BFC0C1C2 C3C4C5C6 C7C8C9CA CBCCCDCE CFD0D1D2 D3D4D5D6",
}; 
tvstr Additional2_111 =
{
    111, 
    "A0A1A2 A3A4A5A6 A7A8A9AA ABACADAE"
    "AFB0B1B2 B3B4B5B6 B7B8B9BA BBBCBDBE BFC0C1C2 C3C4C5C6"
    "C7C8C9CA CBCCCDCE CFD0D1D2 D3D4D5D6 D7D8D9DA DBDCDDDE"
    "DFE0E1E2 E3E4E5E6 E7E8E9EA EBECEDEE EFF0F1F2 F3F4F5F6"
    "F7F8F9FA FBFCFDFE FF000102 03040506 0708090A 0B0C0D0E"
};

tvstr Empty = { 0, NULL,};

DRBG-HMAC-SHA256测试数据

typedef DRBGTV drbg_hmac_sha256_tv;
drbg_hmac_sha256_tv drbg_hmac_sha256[] = 
{
    {/* 测试向量************************************************************/ 
        /* inf */ (char*)"NIST提供HMAC DRBG SHA256测试向量", DRBG_HMAC_SHA256, FALSE,
        /* EntropyInput            */    &Entropy_055,  
        /* Entropy1 (Reseed1)    */    &Entropy1_055,  
        /* Entropy2 (Reseed2)    */    &Entropy2_055,  
        /* Nonce                */    &Nonce08, 
        /* PersonalizationString*/    &Empty, 
        /* AdditionalInput 1    */    &Empty,
        /* AdditionalInput 2    */    &Empty,
        /* rnd_val 1            */    64, 
        "D67B8C17 34F46FA3 F763CF57 C6F9F4F2"
        "DC1089BD 8BC1F6F0 23950BFC 56176352 08C85012 38AD7A44"
        "00DEFEE4 6C640B61 AF77C2D1 A3BFAA90 EDE5D207 406E5403",
        /* rnd_val 2            */    64,
        "8FDAEC20 F8B42140 7059E358 8920DA7E"
        "DA9DCE3C F8274DFA 1C59C108 C1D0AA9B 0FA38DA5 C792037C"
        "4D33CD07 0CA7CD0C 5608DBA8 B8856546 39DE2187 B74CB263",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA256测试向量", DRBG_HMAC_SHA256, FALSE,
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,  
        /* Entropy2 (Reseed2)    */    &Entropy2_055,  
        /* Nonce                */    &Nonce08,
        /* PersonalizationString*/    &Empty,
        /* AdditionalInput1        */    &Additional1_055,
        /* AdditionalInput2        */    &Additional2_055,  
        /* rnd_val 1            */    64, 
        "41878735 8135419B 93813353 5306176A"
        "FB251CDD 2BA37988 59B566A0 5CFB1D68 0EA92585 6D5B84D5"
        "6ADAE870 45A6BA28 D2C908AB 75B7CC41 431FAC59 F38918A3",
        /* rnd_val 2            */    64,
        "7C067BDD CA817248 23D64C69 829285BD"
        "BFF53771 6102C188 2E202250 E0FA5EF3 A384CD34 A20FFD1F"
        "BC91E0C5 32A8A421 BC4AFE3C D47F2232 3EB4BAE1 A0078981",
    }, 
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA256测试向量", DRBG_HMAC_SHA256, FALSE,
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce08, 
        /* PersonalizationString*/    &Personal_055, 
        /* AdditionalInput1        */    &Empty,  
        /* AdditionalInput2        */    &Empty,  
        /* rnd_val 1            */    64, 
        "0DD9C855 89F357C3 89D6AF8D E9D734A9"
        "17C771EF 2D8816B9 82596ED1 2DB45D73 4A626808 35C02FDA"
        "66B08E1A 369AE218 F26D5210 AD564248 872D7A28 784159C3",
        /* rnd_val 2            */    64,
        "46B4F475 6AE715E0 E51681AB 2932DE15"
        "23BE5D13 BAF0F458 8B11FE37 2FDA37AB E3683173 41BC8BA9"
        "1FC5D85B 7FB8CA8F BC309A75 8FD6FCA9 DF43C766 0B221322",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA256测试向量", DRBG_HMAC_SHA256, FALSE,
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce08, 
        /* PersonalizationString*/    &Personal_055, 
        /* AdditionalInput1        */    &Additional1_055,  
        /* AdditionalInput2        */    &Additional2_055,
        /* rnd_val 1            */    64, 
        "1478F29E 94B02CB4 0D3AAB86 245557CE"
        "13A8CA2F DB657D98 EFC19234 6B9FAC33 EA58ADA2 CCA432CC"
        "DEFBCDAA 8B82F553 EF966134 E2CD139F 15F01CAD 568565A8",
        /* rnd_val 2            */    64,
        "497C7A16 E88A6411 F8FCE10E F56763C6"
        "1025801D 8F51A743 52D682CC 23A0A8E6 73CAE032 28939064"
        "7DC683B7 342885D6 B76AB1DA 696D3E97 E22DFFDD FFFD8DF0",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA256测试向量", DRBG_HMAC_SHA256, TRUE, 
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce08, 
        /* PersonalizationString*/    &Empty,
        /* AdditionalInput1        */    &Empty, 
        /* AdditionalInput2        */    &Empty, 
        /* rnd_val 1            */    64, 
        "FABD0AE2 5C69DC2E FDEFB7F2 0C5A31B5"
        "7AC938AB 771AA19B F8F5F146 8F665C93 8C9A1A5D F0628A56"
        "90F15A1A D8A613F3 1BBD65EE AD5457D5 D26947F2 9FE91AA7",
        /* rnd_val 2            */    64,
        "6BD925B0 E1C232EF D67CCD84 F722E927"
        "ECB46AB2 B7400147 77AF14BA 0BBF53A4 5BDBB62B 3F7D0B9C"
        "8EEAD057 C0EC754E F8B53E60 A1F434F0 5946A8B6 86AFBC7A",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA256测试向量", DRBG_HMAC_SHA256, TRUE, 
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce08, 
        /* PersonalizationString*/    &Empty,
        /* AdditionalInput1        */    &Additional1_055, 
        /* AdditionalInput2        */    &Additional2_055, 
        /* rnd_val 1            */    64, 
        "085D57AF 6BABCF2B 9AEEF387 D531650E"
        "6A505C54 406AB37A 52899E0E CAB3632B 7A068A28 14C6DF6A"
        "E532B658 D0D9741C 84775FEE 45B684CD BDC25FBC B4D8F310",
        /* rnd_val 2            */    64,
        "9B219FD9 0DE2A08E 493405CF 874417B5"
        "826770F3 94481555 DC668ACD 96B9A3E5 6F9D2C32 5E26D47C"
        "1DFCFC8F BF86126F 40A1E639 60F62749 342ECDB7 1B240DC6",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA256测试向量", DRBG_HMAC_SHA256, TRUE,
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce08, 
        /* PersonalizationString*/    &Personal_055,
        /* AdditionalInput1        */    &Empty,
        /* AdditionalInput2        */    &Empty,
        /* rnd_val 1            */    64, 
        "D8B67130 714194FF E5B2A35D BCD5E1A2"
        "9942AD5C 68F3DEB9 4ADD9E9E BAD86067 EDF04915 FB40C391"
        "EAE70C65 9EAAE7EF 11A3D46A 5B085EDD 90CC72CE A989210B",
        /* rnd_val 2            */    64,
        "8BBA71C2 583F2530 C259C907 84A59AC4"
        "4D1C8056 917CCF38 8788102D 73824C6C 11D5D63B E1F01017"
        "D884CD69 D9334B9E BC01E7BD 8FDF2A8E 52572293 DC21C0E1",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA256测试向量", DRBG_HMAC_SHA256, TRUE, 
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce08, 
        /* PersonalizationString*/    &Personal_055,
        /* AdditionalInput1        */    &Additional1_055, 
        /* AdditionalInput2        */    &Additional2_055,
        /* rnd_val 1            */    64, 
        "44D78BBC 3EB67C59 C22F6C31 003D212A"
        "7837CCD8 4C438B55 150FD013 A8A78FE8 EDEA81C6 72E4B8DD"
        "C8183886 E69C2E17 7DF574C1 F190DF27 1850F8CE 55EF20B8",
        /* rnd_val 2            */    64,
        "917780DC 0CE9989F EE6C0806 D6DA123A"
        "18252947 58D4E1B5 82687231 780A2A9C 33F1D156 CCAD3277"
        "64B29A4C B2690177 AE96EF9E E92AD0C3 40BA0FD1 203C02C6",
    },  
};
 

这篇关于确定性随机数发生器测试向量——DRBG-HMAC-SHA256的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/295047

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Vector3 三维向量

Vector3 三维向量 Struct Representation of 3D vectors and points. 表示3D的向量和点。 This structure is used throughout Unity to pass 3D positions and directions around. It also contains functions for doin

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

明明的随机数处理问题分析与解决方案

明明的随机数处理问题分析与解决方案 引言问题描述解决方案数据结构设计具体步骤伪代码C语言实现详细解释读取输入去重操作排序操作输出结果复杂度分析 引言 明明生成了N个1到500之间的随机整数,我们需要对这些整数进行处理,删去重复的数字,然后进行排序并输出结果。本文将详细讲解如何通过算法、数据结构以及C语言来解决这个问题。我们将会使用数组和哈希表来实现去重操作,再利用排序算法对结果

8. 自然语言处理中的深度学习:从词向量到BERT

引言 深度学习在自然语言处理(NLP)领域的应用极大地推动了语言理解和生成技术的发展。通过从词向量到预训练模型(如BERT)的演进,NLP技术在机器翻译、情感分析、问答系统等任务中取得了显著成果。本篇博文将探讨深度学习在NLP中的核心技术,包括词向量、序列模型(如RNN、LSTM),以及BERT等预训练模型的崛起及其实际应用。 1. 词向量的生成与应用 词向量(Word Embedding)

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------