发明内容
本发明实施例提供了一种智能家电远程控制系统和方法,能够提高系统的安全性。
第一方面,本发明实施例提供了一种智能家电远程控制系统,包括:智能家电、智能终端和云端;
所述智能家电,用于按照预设的时间阈值周期性地生成密钥,并将所述密钥发送给所述云端,接收所述智能终端发送的加密控制指令,利用所述密钥中最新生成的第一密钥对所述加密控制指令进行解密,根据解密得到的控制指令执行相应操作;
所述云端,用于存储所述智能家电发送的所述密钥;
所述智能终端,用于接收用户发送的所述控制指令,利用从所述云端中获取的所述第一密钥对所述控制指令进行加密,生成所述加密控制指令,将所述加密控制指令发送给所述智能家电。
优选地,
所述智能终端,用于确定所述控制指令对应的第一字节数组,将所述第一字节数组中的各个字节相加,生成第一校验字节,将所述第一校验字节添加进所述第一字节数组,生成第一校验数组,利用从所述云端中获取的所述第一密钥对所述第一校验数组进行加密,生成所述加密控制指令;
所述智能家电,用于利用所述第一密钥对所述加密控制指令进行解密,生成所述第一校验数组,根据所述第一校验数组确定所述第一校验字节和所述第一字节数组,当所述第一字节数组中的各个字节相加等于所述第一校验字节时,确定所述第一字节数组为所述控制指令,根据所述控制指令执行相应操作。
优选地,
所述智能家电,进一步用于当检测到状态参数发生变化时,利用所述密钥中最新生成的第二密钥对所述状态参数进行加密,生成加密状态参数,将所述加密状态参数发送给所述智能终端;
所述智能终端,进一步用于接收所述智能家电发送的所述加密状态参数,利用从所述云端中获取的所述第二密钥对所述加密状态参数进行解密,将解密得到的所述状态参数展示给所述用户。
优选地,
所述智能家电,用于确定所述状态参数对应的第二字节数组,将所述第二字节数组中的各个字节相加,生成第二校验字节,将所述第二校验字节添加进所述第二字节数组,生成第二校验数组,利用所述第二密钥对所述第二校验数组进行加密,生成所述加密状态参数;
所述智能终端,用于利用所述第二密钥对所述加密状态参数进行解密,生成所述第二校验数组,根据所述第二校验数组确定所述第二校验字节和所述第二字节数组,当所述第二字节数组中的各个字节相加等于所述第二校验字节时,确定所述第二字节数组为所述状态参数,将所述状态参数展示给所述用户。
优选地,
所述智能终端,进一步用于对所述加密控制指令进行编码;
所述智能终端,用于将编码后的所述加密控制指令发送给所述智能家电;
所述智能家电,用于接收编码后的所述加密控制指令;
所述智能家电,进一步用于对编码后的所述加密控制指令进行解码,得到所述加密控制指令。
第二方面,本发明实施例提供了一种智能家电远程控制方法,包括:
智能家电按照预设的时间阈值周期性地生成密钥,并将所述密钥发送给云端;
所述云端存储所述密钥;
智能终端接收用户发送的控制指令,利用从所述云端中获取的所述密钥中最新生成的第一密钥对所述控制指令进行加密,生成加密控制指令,将所述加密控制指令发送给所述智能家电;
所述智能家电接收所述加密控制指令,利用所述第一密钥对所述加密控制指令进行解密,根据解密得到的所述控制指令执行相应操作。
优选地,
所述利用从所述云端中获取的所述密钥中最新生成的第一密钥对所述控制指令进行加密,生成加密控制指令,包括:
确定所述控制指令对应的第一字节数组;
将所述第一字节数组中的各个字节相加,生成第一校验字节;
将所述第一校验字节添加进所述第一字节数组,生成第一校验数组;
利用从所述云端中获取的所述密钥中最新生成的第一密钥对所述第一校验数组进行加密,生成加密控制指令;
所述利用所述第一密钥对所述加密控制指令进行解密,根据解密得到的所述控制指令执行相应操作,包括:
利用所述第一密钥对所述加密控制指令进行解密,生成所述第一校验数组;
根据所述第一校验数组确定所述第一校验字节和所述第一字节数组;
当所述第一字节数组中的各个字节相加等于所述第一校验字节时,确定所述第一字节数组为所述控制指令,根据所述控制指令执行相应操作。
优选地,
进一步包括:
所述智能家电当检测到状态参数发生变化时,利用所述密钥中最新生成的第二密钥对所述状态参数进行加密,生成加密状态参数,将所述加密状态参数发送给所述智能终端;
所述智能终端接收所述加密状态参数,利用从所述云端中获取的所述第二密钥对所述加密状态参数进行解密,将解密得到的所述状态参数展示给所述用户。
优选地,
所述利用所述密钥中最新生成的第二密钥对所述状态参数进行加密,生成加密状态参数,包括:
确定所述状态参数对应的第二字节数组;
将所述第二字节数组中的各个字节相加,生成第二校验字节;
将所述第二校验字节添加进所述第二字节数组,生成第二校验数组;
利用所述第二密钥对所述第二校验数组进行加密,生成加密状态参数;
所述利用从所述云端中获取的所述第二密钥对所述加密状态参数进行解密,将解密得到的所述状态参数展示给所述用户,包括:
利用从所述云端中获取的所述第二密钥对所述加密状态参数进行解密,生成所述第二校验数组;
根据所述第二校验数组确定所述第二校验字节和所述第二字节数组;
当所述第二字节数组中的各个字节相加等于所述第二校验字节时,确定所述第二字节数组为所述状态参数,将所述状态参数展示给所述用户。
优选地,
在所述利用从所述云端中获取的所述密钥中最新生成的第一密钥对所述控制指令进行加密,生成加密控制指令之后,进一步包括:
对所述加密控制指令进行编码;
所述将所述加密控制指令发送给所述智能家电,包括:
将编码后的所述加密控制指令发送给所述智能家电;
所述所述智能家电接收所述加密控制指令,包括:
所述智能家电接收编码后的所述加密控制指令;
在所述利用所述第一密钥对所述加密控制指令进行解密之前,进一步包括:
对编码后的所述加密控制指令进行解码,得到所述加密控制指令。
本发明实施例提供了一种智能家电远程控制系统和方法,其中,在智能家电远程控制系统中,智能家电可以周期性地产生密钥,并将产生的密钥上传至云端,智能终端可以利用云端中最新生成的第一密钥对用户发送的控制指令进行加密,生成加密控制指令。智能家电利用第一密钥对加密控制指令进行解密,得到控制指令,根据控制指令执行相应的操作。在该系统中,可以通过不同的密钥对控制指令进行加密,与使用单一密钥进行加密相比,提高了系统安全性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种智能家电远程控制系统,该系统包括:
智能家电101、智能终端102和云端103;
智能家电101,用于按照预设的时间阈值周期性地生成密钥,并将密钥发送给云端103,接收智能终端102发送的加密控制指令,利用密钥中最新生成的第一密钥对加密控制指令进行解密,根据解密得到的控制指令执行相应操作;
云端103,用于存储智能家电101发送的密钥;
智能终端102,用于接收用户发送的控制指令,利用从云端103中获取的第一密钥对控制指令进行加密,生成加密控制指令,将加密控制指令发送给智能家电101。
在如图1所示的智能家电远程控制系统中,智能家电可以周期性地产生密钥,并将产生的密钥上传至云端,智能终端可以利用云端中最新生成的第一密钥对用户发送的控制指令进行加密,生成加密控制指令。智能家电利用第一密钥对加密控制指令进行解密,得到控制指令,根据控制指令执行相应的操作。在该系统中,可以通过不同的密钥对控制指令进行加密,与使用单一密钥进行加密相比,提高了系统安全性。
在实际应用场景中,智能家电远程控制系统中可以存在多个智能家电和多个智能终端。云端中存储智能终端(或用户)与智能家电的对应关系,不同的智能家电对应不同的密钥。例如,用户通过智能终端控制5台智能家电,当接收到用户的控制指令时,智能终端从云端中获取与该智能终端(或用户)相对应的智能家电的密钥,利用各个密钥分别对控制指令进行加密。
智能终端为智能手机或平板电脑,智能家电为携带有WiFi模块的空调、冰箱、电视、小家电等家电设备。
该过程使用的加密方法可以包括:AES(Advanced Encryption Standard,高级加密标准)、码表替换、取补码、移位处理、插入随机无效数据、微型加密算法、消息摘要算法、哈希加密、RSA加密算法及DES(Data Encryption Standard,数据加密算法)中任意一种或多种。
新密钥产生之后,旧密钥则失效。智能家电可以监测密钥的产生时间,根据时间阈值确定密钥失效时间,智能家电可以在密钥失效时,或者失效之前一定的时间段内通知智能终端,以使智能终端及时从云端获取新密钥。
例如,智能家电产生新密钥时,向智能终端发送XMPP(Extensible Messaging andPresence Protocol,可扩展通讯和表示协议)消息,内容为“00”字符串,智能终端在解析XMPP消息时,判断如果是“00”就表明旧密钥已过期。
例如,当智能家电提前5分钟通知旧密钥即将过期时,智能终端会马上调用云端接口从云端获取新密钥,在还未获取到新密钥时,如果用户发送了控制指令,此时还是使用之前的旧密钥,智能终端会在这个5分钟的过渡期保证旧密钥依然可以使用,直到智能终端获取到新密钥后,再使用新密钥替换旧密钥,这样就可以保证用户在新老密钥交接时可以正常控制智能家电。
在本发明的一个实施例中,为了进一步验证控制指令是否合法,提高系统的安全性,智能终端102,用于确定控制指令对应的第一字节数组,将第一字节数组中的各个字节相加,生成第一校验字节,将第一校验字节添加进第一字节数组,生成第一校验数组,利用从云端103中获取的第一密钥对第一校验数组进行加密,生成加密控制指令;
智能家电101,用于利用第一密钥对加密控制指令进行解密,生成第一校验数组,根据第一校验数组确定第一校验字节和第一字节数组,当第一字节数组中的各个字节相加等于第一校验字节时,确定第一字节数组为控制指令,根据控制指令执行相应操作。
在本实施例中,通过设置校验位的方式对控制指令进行进一步加密。其中,第一校验字节可以添加进第一字节数组的首位或末尾,也可以添加在中间位置。第一校验字节可以通过相加运算产生,例如,各个字节相加,还可以通过其他的运算方式产生,例如,第一字节数组中首字节和尾字节相减。
在智能家电中,可以通过第一校验字节进行验证,验证方法与智能终端中的加密方法相适应。通过验证可以确定该控制指令是否合法,以防止恶意产生的控制指令对智能家电的运行造成影响。
在本发明的一个实施例中,该系统不仅可以对智能终端接收到的控制指令进行加密,还可以对智能家电的状态参数进行加密。智能家电101,进一步用于当检测到状态参数发生变化时,利用密钥中最新生成的第二密钥对状态参数进行加密,生成加密状态参数,将加密状态参数发送给智能终端102;
智能终端102,进一步用于接收智能家电101发送的加密状态参数,利用从云端103中获取的第二密钥对加密状态参数进行解密,将解密得到的状态参数展示给用户。
在本发明的一个实施例中,智能家电101,用于确定状态参数对应的第二字节数组,将第二字节数组中的各个字节相加,生成第二校验字节,将第二校验字节添加进第二字节数组,生成第二校验数组,利用第二密钥对第二校验数组进行加密,生成加密状态参数;
智能终端102,用于利用第二密钥对加密状态参数进行解密,生成第二校验数组,根据第二校验数组确定第二校验字节和第二字节数组,当第二字节数组中的各个字节相加等于第二校验字节时,确定第二字节数组为状态参数,将状态参数展示给用户。
其中,在上述实施例中,对于状态参数的加密和解密过程与对控制指令的加密和解密过程类似,此处不再赘述。
在本发明的一个实施例中,为了增强系统的安全性,智能终端102,进一步用于对加密控制指令进行编码;
智能终端102,用于将编码后的加密控制指令发送给智能家电101;
智能家电101,用于接收编码后的加密控制指令;
智能家电101,进一步用于对编码后的加密控制指令进行解码,得到加密控制指令。
在本实施例中,采用BASE64方式进行编码。除了在控制指令的处理过程中应用编码、解码,还可以在状态参数的处理过程中应用编码、解码,以提高状态参数在智能家电与智能终端之间传输的安全性。
如图2所示,本发明实施例提供了一种智能家电远程控制方法,包括:
步骤201:智能家电按照预设的时间阈值周期性地生成密钥,并将密钥发送给云端;
步骤202:云端存储密钥;
步骤203:智能终端接收用户发送的控制指令,利用从云端中获取的密钥中最新生成的第一密钥对控制指令进行加密,生成加密控制指令,将加密控制指令发送给智能家电;
步骤204:智能家电接收加密控制指令,利用第一密钥对加密控制指令进行解密,根据解密得到的控制指令执行相应操作。
在本发明的一个实施例中,利用从云端中获取的密钥中最新生成的第一密钥对控制指令进行加密,生成加密控制指令,包括:
确定控制指令对应的第一字节数组;
将第一字节数组中的各个字节相加,生成第一校验字节;
将第一校验字节添加进第一字节数组,生成第一校验数组;
利用从云端中获取的密钥中最新生成的第一密钥对第一校验数组进行加密,生成加密控制指令;
利用第一密钥对加密控制指令进行解密,根据解密得到的控制指令执行相应操作,包括:
利用第一密钥对加密控制指令进行解密,生成第一校验数组;
根据第一校验数组确定第一校验字节和第一字节数组;
当第一字节数组中的各个字节相加等于第一校验字节时,确定第一字节数组为控制指令,根据控制指令执行相应操作。
在本发明的一个实施例中,该方法还包括:智能家电当检测到状态参数发生变化时,利用密钥中最新生成的第二密钥对状态参数进行加密,生成加密状态参数,将加密状态参数发送给智能终端;
智能终端接收加密状态参数,利用从云端中获取的第二密钥对加密状态参数进行解密,将解密得到的状态参数展示给用户。
在本发明的一个实施例中,利用密钥中最新生成的第二密钥对状态参数进行加密,生成加密状态参数,包括:
确定状态参数对应的第二字节数组;
将第二字节数组中的各个字节相加,生成第二校验字节;
将第二校验字节添加进第二字节数组,生成第二校验数组;
利用第二密钥对第二校验数组进行加密,生成加密状态参数;
利用从云端中获取的第二密钥对加密状态参数进行解密,将解密得到的状态参数展示给用户,包括:
利用从云端中获取的第二密钥对加密状态参数进行解密,生成第二校验数组;
根据第二校验数组确定第二校验字节和第二字节数组;
当第二字节数组中的各个字节相加等于第二校验字节时,确定第二字节数组为状态参数,将状态参数展示给用户。
在本发明的一个实施例中,在利用从云端中获取的密钥中最新生成的第一密钥对控制指令进行加密,生成加密控制指令之后,进一步包括:
对加密控制指令进行编码;
将加密控制指令发送给智能家电,包括:
将编码后的加密控制指令发送给智能家电;
智能家电接收加密控制指令,包括:
智能家电接收编码后的加密控制指令;
在利用第一密钥对加密控制指令进行解密之前,进一步包括:
对编码后的加密控制指令进行解码,得到加密控制指令。
如图3所示,本发明实施例以控制指令为例,对智能家电远程控制方法进行详细地说明,该方法包括:
步骤301:智能家电按照预设的时间阈值周期性地生成密钥,并将密钥发送给云端。
预先设置时间阈值为1min,智能家电每隔1min生成一个密钥,各个密钥互不相同,并将生成的密钥发送至云端。
步骤302:云端存储密钥。
云端存储智能家电上传的密钥。
步骤303:智能终端接收用户发送的控制指令,确定控制指令对应的第一字节数组。
假设控制指令对应的第一字节数组为123
步骤304:将第一字节数组中的各个字节相加,生成第一校验字节,将第一校验字节添加进第一字节数组,生成第一校验数组。
将各个字节相加,得到第一校验字节为6,将6添加进第一字节数组的末位,得到第一校验数组为1236。
步骤305:利用从云端中获取的密钥中最新生成的第一密钥对第一校验数组进行加密,生成加密控制指令。
确定最新生成的密钥为D。
通过AES,利用密钥D对第一校验数组1236进行加密,生成加密控制指令W。
步骤306:对加密控制指令进行编码,将编码后的加密控制指令发送给智能家电。
利用BASE64方式对加密控制指令W进行编码,得到编码后的加密控制指令M,将M发送给智能家电。
步骤307:智能家电接收编码后的加密控制指令,对编码后的加密控制指令进行解码,得到加密控制指令。
智能家电利用BASE64方式对M进行解码,得到加密控制指令W。
步骤308:利用第一密钥对加密控制指令进行解密,生成第一校验数组,根据第一校验数组确定第一校验字节和第一字节数组。
利用通过AES,利用密钥D对加密控制指令W进行解密,生成第一校验数组1236,其中第一校验字节为6和第一字节数组为123。
步骤309:当第一字节数组中的各个字节相加等于第一校验字节时,确定第一字节数组为控制指令,根据控制指令执行相应操作。
第一字节数组中的各个字节相加等于第一校验字节,确定第一字节数组为控制指令,执行相应操作,具体操作可以包括,调整智能家电的状态参数,启动或关闭智能家电等。
上述方法内的各步骤之间的信息交互、执行过程等内容,由于与本发明系统实施例基于同一构思,具体内容可参见本发明系统实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,存储控制器执行上述任一实施例的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
存储器用于存储执行指令,处理器与存储器通过总线连接,当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例的方法。
综上,本发明各个实施例至少具有如下效果:
1、在本发明实施例中,智能家电可以周期性地产生密钥,并将产生的密钥上传至云端,智能终端可以利用云端中最新生成的第一密钥对用户发送的控制指令进行加密,生成加密控制指令。智能家电利用第一密钥对加密控制指令进行解密,得到控制指令,根据控制指令执行相应的操作。在该系统中,可以通过不同的密钥对控制指令进行加密,与使用单一密钥进行加密相比,提高了系统安全性。
2、在本发明实施例中,可以将设置校验位、编码与动态密钥相结合的方式对智能家电与智能终端间的通信信息进行加密,提高破解难度,防止不合法用户恶意控制智能家电,保证系统的安全。
3、在本发明实施例中,可以通过加法运算在字节数组中添加校验字节,其中,校验字节的位置存在多种选择,在实际应用场景中,除了加法运算,还可以采用减法运算、乘法运算等一系列数学运算,还可以通过不同运算过程的组合增加加密的复杂程度,提高系统的安全性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。