`
liubin127
  • 浏览: 20694 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

解密算法一

阅读更多
一、ICCID 解密算法

//函数: static u8 HuaweiGenPICPSW(ascii *sSrc, u8 nSrcLen, ascii *sDec, u8 nDecLen)
//变量说明:
//函数返回值:-1,失败;TRUE,成功。
// ascii *sSrc: 源数据,待解密的ICCID码内容
// u8 nSrcLen: 源数据长度,待解密的ICCID码长度
// ascii *sDec: 目标数据,生成的解密码内容
// u8 nDecLen:目标数据长度,生成的解密码长度

//常量:
//HUAWEI_SPE_ICCID_LEN: ICCID码长度为15位
// HUAWEI_SPE_PIC_PSW_LEN: 解密码长度为14位


#define HUAWEI_SPE_ICCID_LEN 15
#define HUAWEI_SPE_PIC_PSW_LEN 14

static u8 HuaweiGenPICPSW(ascii *sSrc, u8 nSrcLen, ascii *sDec, u8 nDecLen)
{
    u8 i = 0;
    u8 l = 0;
    u8 tmp = 0;
    u8 vPSW[HUAWEI_SPE_PIC_PSW_LEN+1] = {0};
    u32 data1 = 0, data2 = 0, decData1 = 0, decData2;
    static u8 seed[] = "";  //密钥字符串,正式生成系统时,通过电话知会。
    if ((!sSrc) || (!sDec)||
        (HUAWEI_SPE_ICCID_LEN > nSrcLen) || ((HUAWEI_SPE_PIC_PSW_LEN+1) > nDecLen))
    {
        return -1;
    }
    i = 1;/*前1 位跳过*/
    while(i<HUAWEI_SPE_ICCID_LEN)
    {
        vPSW[l] = sSrc[i]^seed[l];
        if ((sSrc[i] > '9') || (sSrc[i] < '0'))
        {
            /*把非数字字符转换成数字*/
            vPSW[l] = sSrc[i]&0x07;
        }
        else
        {
            /*与seed进行异或*/
            vPSW[l] = sSrc[i]^seed[l];
        }
        /*转换成数值前,保证最高位非0*/
        if (vPSW[0] == '0')
        {
            vPSW[0] = '2';
        }
        if (vPSW[(HUAWEI_SPE_PIC_PSW_LEN/2)] == '0')
        {
            vPSW[(HUAWEI_SPE_PIC_PSW_LEN/2)] = '6';
        }
        i++;l++;
    }
    Cal4_509output_uart2("vPSW = %s\n", vPSW);
    i = 0;
    /*把14位字符串转换成两个数值*/
    while(i<(HUAWEI_SPE_PIC_PSW_LEN/2))
    {
        data2 = data2*10+(vPSW[i] - '0');
        data1 = data1*10+(vPSW[i+(HUAWEI_SPE_PIC_PSW_LEN/2)] - '0');
        i++;
    }
    /*对数值进行与,异或*/
    decData1 = data1&data2;
    decData2 = data1^data2;
    Cal4_509output_uart2("data1 = %d, data2 = %d\n", data1, data2);
    Cal4_509output_uart2("decData1 = %d, decData2 = %d\n", decData1, decData2);
    i= 0;
    /*再把数值转换成字符串*/
    while(i<(HUAWEI_SPE_PIC_PSW_LEN/2))
    {
        tmp = (u8)(decData1%10);
        sDec[i] = tmp + '0';
        decData1 = decData1/10;

        tmp = (u8)(decData2%10);
        sDec[i+(HUAWEI_SPE_PIC_PSW_LEN/2)] = tmp + '0';
        decData2 = decData2/10;

        i++;
    }
   
    sDec[HUAWEI_SPE_PIC_PSW_LEN] = '\0';
    Cal4_509output_uart2("----sDec = %s\n", sDec);
    return TRUE;
}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    密码学实验_对称加密算法DES_非对称加密算法RSA.pdf

    DES是一种广泛使用的对称加密算法,它基于Feistel结构,以64位的数据块和64位的密钥进行操作。实验步骤如下: 1. **明文处理**:首先,从文件中读取明文,将其转换为ASCII码,再转换为比特流。每64位分为一组,不足...

    分组加密算法

    分组加密算法是对称加密算法的一种,使用相同的密钥来实现加密和解密。以 DES 加密算法为例,掌握分组加密算法加密、解密的过程实现。 一、加密过程 1. 初始化密钥:使用 KeyGenerator 类创建对称密钥,指定算法...

    DES加密算法实验

    **DES(Data Encryption Standard)加密算法**是一种经典的对称加密技术,在信息安全领域占据着重要地位。本实验旨在通过实践操作,加深对DES算法工作原理的理解。具体目标包括: 1. **理解对称加密与非对称加密的...

    OpenSSL对称加密算法中如何添加新算法

    OpenSSL 是一个开源的加密算法库,它提供了对称加密算法、非对称加密算法、哈希算法等多种加密算法。OpenSSL 的对称加密算法中可以添加新算法,以满足不同的加密需求。下面我们将介绍如何在 OpenSSL 对称加密算法中...

    加密算法源码.zip信息安全技术,加密算法源码

    在信息安全领域,加密算法是保护数据隐私和网络安全的重要工具。加密算法源码是实现这些算法的编程代码,它能够帮助我们理解加密过程的内部工作原理,并可以用于开发自定义的安全解决方案。下面,我们将深入探讨加密...

    twofish加密算法的实现源代码(含详细文档)

    Twofish是一种强大的对称密钥加密算法,由Bruce Schneier及其团队在1998年设计,作为DES和AES的替代方案。它在安全性、效率和灵活性方面表现出色,被广泛应用于数据保护、网络安全和个人隐私领域。 VC++6.0是...

    加密算法及其应用

    #### 一、加密算法简介 加密技术是信息安全领域的核心组成部分,其目的是保护数据的隐私性和完整性。加密算法是实现这一目标的关键工具,它们通过对原始数据进行数学运算,将数据转化为不可读的形式,确保即使数据...

    字符串加密算法

    AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,它基于替换和置换的操作,具有高效性和安全性。AES的核心是Rijndael算法,支持128、192和256位的密钥长度,以及128位的数据块大小。其工作流程...

    QT 实现AES 加密算法

    在QT中实现AES(Advanced Encryption Standard)加密算法,可以帮助开发者确保数据的安全性,防止未授权的访问和篡改。AES是目前国际上广泛采用的一种块密码标准,因其高效性和安全性而备受推崇。 AES加密算法基于...

    非对称加密算法 数字签名算法

    RSA是一种广泛使用的非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出。它基于大整数因子分解的困难性,即寻找两个大素数的乘积的因数。公钥和私钥的生成涉及素数选取、欧拉函数、模逆运算等...

    DES加密算法(c语言实现)

    DES(Data Encryption Standard)是一种经典的对称加密算法,由IBM公司于1970年代初期设计,1977年被美国国家标准局(NIST)采纳为联邦信息处理标准(FIPS PUB 46),并在全球范围内广泛使用。DES算法基于Feistel...

    常见加密算法方式(对称加密和非对称加密)

    对称加密算法是指加密和解密过程使用同一个密钥的加密算法。这类算法的主要优点在于加解密速度较快,且在使用较长密钥时能够提供较高的安全性。然而,对称加密算法面临着密钥管理和分发的问题。在一个组织内部,如果...

    csp加密算法的实现

    CSP(Cryptographic Service Provider)加密算法是一种常用的加密方式,该算法基于公钥密码体制,使用对称加密和非对称加密相结合的方式来实现加密和解密操作。在本文中,我们将详细介绍CSP加密算法的实现,包括加密...

    C#加密算法类库

    C#加密算法类库是一个专为.NET开发者设计的工具,它包含了多种常见的加密算法实现,以便在C#项目中方便地进行数据加密和解密。这个类库通常以.dll文件的形式提供,允许开发者通过引用该文件来直接使用其封装好的加密...

    RSA加密算法实验报告.pdf

    一、RSA加密算法的原理 RSA加密算法是基于大数分解问题的安全性,公钥和私钥都是两个大素数的函数。公钥对的产生包括选择两个大素数p和q,计算n=p*q,然后随机选择加密密钥e,要求e和(p-1)*(q-1)互质。最后,利用...

    常见加密算法c++源代码

    C++是一种通用的、面向对象的编程语言,广泛应用于系统软件、应用软件、设备驱动、游戏开发等,因此用C++实现加密算法是常见的做法。本文将深入探讨C++中常见的加密算法及其源代码实现。 1. **对称加密算法** 对称...

    RSA非对称加密算法

    RSA算法之所以重要,是因为它是第一个被广泛采用的非对称加密算法,它的出现为信息安全领域带来了革命性的进步。非对称加密技术与之前的对称加密技术有着本质的不同,它基于数学上的某些难题,比如大整数的因式分解...

    java加密算法:Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法

    java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...

Global site tag (gtag.js) - Google Analytics