密码防盗方法和装置与流程

文档序号:17443517发布日期:2019-04-17 05:09阅读:170来源:国知局
密码防盗方法和装置与流程

本发明涉及信息安全技术,特别是涉及一种密码防盗方法以及相应的密码防盗装置。本案为申请号为201410386637.9的分案申请。



背景技术:

智能移动设备中的一些应用在执行登录或者支付等过程中,通常会要求用户在指定的位置处输入密码或者在指定的位置处输入用户名和密码。智能移动设备中的操作系统往往会提供相应的安全措施来保证用户输入的密码不会被恶意窃取;一个具体的例子,基于ios的智能移动设备中的几乎所有的应用都基于ios原生的密码控件来获取用户密码,并执行后续的登录或支付等操作;该例子的一个具体实现过程为:用户通过软键盘输入密码,该密码被存入密码控件中,而用户界面上并不显示用户输入的密码(如仅显示相同位数的圆点等),之后,应用从密码控件中获取用户输入的密码,并执行后续的登录或者支付等操作。

发明人在实现本发明过程中发现,一些智能移动设备中存在着用户输入的密码被恶意窃取的现象,如在基于越狱的ios的智能移动设备中,应用由于越狱而具有系统权限,使应用可以实现跨应用访问,即一个应用可以访问其他应用的数据;从而一些恶意应用(如ikeymonitor等)可以利用跨应用访问这一特点来获取其他应用在用户登录或者支付等过程中用户所输入的密码。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的密码防盗方法和装置。

依据本发明的一个方面,提供了一种密码防盗方法,该方法适用于在运行过程中向用户展示密码输入界面的智能移动设备中的应用,所述方法包括步骤:在应用运行过程中向用户展示密码输入界面的情况下,截取用户输入的密码,将截取到的密码存储于预定变量中,并在应用创建的密码控件对象中存储不同于所述密码的假密码;在所述应用需要使用用户输入的密码进行后续操作的情况下,从所述预定变量中获取所述密码,并提供给应用,使所述应用将从所述预定变量中获取的密码作为用户输入的密码执行后续操作。

根据本发明的另一方面,提供了一种密码防盗装置,该装置适用于在运行过程中向用户展示密码输入界面的智能移动设备中的应用,且所述装置包括:密码处理模块,适于在应用运行过程中向用户展示密码输入界面的情况下,截取用户输入的密码,将截取到的密码存储于预定变量中,并在所述应用创建的密码控件对象中存储不同于所述密码的假密码;密码获取模块,适于在所述应用需要使用用户输入的密码进行后续操作的情况下,从所述预定变量中获取所述密码,并提供给所述应用,使所述应用将从所述预定变量中获取的密码作为用户输入的密码执行后续操作。

本发明的密码防盗方法以及装置通过截取用户输入的密码,并在应用创建的密码控件对象中存储不同于用户输入的密码的假密码,这样,在恶意应用(也可以称为恶意程序)通过跨应用访问方式来从某个应用的密码控件对象中获取密码时,其从密码控件对象中获取到的密码并不是用户输入的真实的密码,而是假密码,从而避免了用户的密码被恶意应用盗取的现象;本发明通过将截取的用户输入的密码存储于指定变量中,并在应用需要用户输入的真实密码来执行诸如登录或者支付等操作时,从指定变量中获取密码,这样,应用可以利用用户输入的真实的密码进行相应的操作,从而在保证用户的真实密码具有安全性的前提下使应用可以正确执行相应的操作;最终本发明提高了用户个人信息的安全性,避免了由于用户个人信息的泄露而给用户的财产或者人身等方面造成的不必要的损失。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例一的密码防盗方法流程图;

图2示出了根据本发明实施例二的密码防盗方法流程图;

图3示出了根据本发明实施例三的密码防盗方法示意图;

图4示出了根据本发明实施例四的密码防盗装置示意图;

图5示出了根据本发明实施例五的密码防盗装置示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一、密码防盗方法。

本实施例通过拦截应用在运行过程中用户输入的密码,并改变应用所在的智能移动设备的键盘(如软键盘)输入与密码控件对象之间的数据传输通道,将用户输入的真实密码存储于预定变量中,同时在密码控件对象中存储假密码(如与用户输入的密码位数完全相同的假密码),且在后续的登录或支付等过程中,不再使应用从密码控件对象中获取密码,而是从预定变量中获取密码,这样,本实施例在保证了应用正常运行的情况下,使恶意程序(如ikeymonitor等)从应用构建的密码控件对象中捕获到的密码为假密码;从而本实施例有效提高了密码的安全性。

下面结合图1对本实施例的方法的具体实施步骤进行详细说明。

s100、在应用运行过程中向用户展示密码输入界面的情况下,截取用户输入的密码,将截取到的密码存储于预定变量中,并在应用创建的密码控件对象中存储不同于上述密码的假密码。

具体的,应用在运行过程中,如果需要用户输入密码,则应用会创建密码控件对象,并在其构建的用户界面中包含该密码控件对象对应的密码输入界面。用户可以通过键盘基于该密码输入界面输入密码;例如,用户可以通过软键盘的方式且基于该密码输入界面输入其密码。在智能移动设备外接有键盘设备的情况下,用户也可以通过外接的键盘设备且基于该密码输入界面来输入其密码。

本实施例截取用户输入的密码有多种,例如,可以采用密码控件对象所支持的现有的回调方法(也可以称为回调函数)来截取用户输入的密码。

在应用采用现有的方式来创建其密码控件对象的情况下,用户在输入密码的过程中,密码控件对象会接收到用户输入的密码,并存储用户输入的密码,同时,密码控件对象会在密码输入界面中显示圆点或者星花等非密码的字符或者符号,以隐藏用户输入的真实的密码。

本实施例可以在应用创建密码控件对象的过程中,对密码控件对象进行相应的扩展,如在密码控件对象的相应位置插入相应的程序代码,以在密码控件对象接收到用户输入的密码时,通过密码控件对象支持的回调方法来截取用户输入的密码,并将成功截取到的密码存储于预定变量中,同时,向密码控件对象提供假密码,使密码控件对象存储的密码为不同于用户输入的密码的假密码;同样的,本实施例的应用创建的密码控件对象会在密码输入界面中显示圆点或者星花等非密码的字符或者符号,以隐藏用户输入的真实的密码。

本实施例存储于密码控件对象中的假密码可以是位数与用户输入的密码的位数相同的假密码;另外,该假密码可以为随机数或者预定字符等;这里的预定字符可以为显示在密码输入界面中的圆点或者星花等。

在本实施例中,存储用户输入的密码的指定变量通常属于内存变量,这样,在应用运行结束后,内存变量会被自动释放,从而避免了应用在运行结束后,智能移动设备中仍留存有用户输入的密码的现象,消除了该留存的密码可能会被泄露的安全隐患。

s110、在上述应用需要使用用户输入的密码进行后续操作的情况下,从预定变量中获取密码,并提供给该应用,使应用将从预定变量中获取的密码作为用户输入的密码执行后续操作。

具体的,在应用需要使用用户输入的密码进行后续的登录或者支付等操作的情况下,本实施例是从预定变量中获取密码提供给应用,而不是从应用创建的密码控件对象中获取密码提供给应用的;例如,在用户完成了密码的输入操作之后,用户会点击用户界面中的“登录”或“确定”或“支付”等按钮,在此情况下,本实施例从内存变量中获取用户输入的真实的密码提供给应用,而不是从密码控件中获取假密码提供给应用;这样,应用可以将从预定变量中获取的密码作为用户输入的密码而执行相应的登录或者支付等操作。具体的登录或者支付等操作的具体实现过程在此不再详细说明。

实施例二、密码防盗方法。

本实施例中的应用通过拦截用户输入的密码,并改变智能移动设备的键盘(如软键盘)输入与密码控件对象之间的数据传输通道,将用户输入的真实密码存储于预定变量中,同时在密码控件对象中存储假密码(如与用户输入的密码位数完全相同的假密码),且在后续的登录或支付等过程中,应用不再从密码控件对象中获取密码,而是从预定变量中获取密码,这样,本实施例在保证了应用正常运行的情况下,使恶意程序(如ikeymonitor等)从应用构建的密码控件对象中捕获到的密码为假密码;从而本实施例有效提高了密码的安全性。

下面结合图2对本实施例的方法的具体实施步骤进行详细说明。

图2中,s200、智能移动设备中的应用在运行过程中向用户展示包含有密码输入框的用户界面。

具体的,本实施例中的智能移动设备可以为基于ios(包括基于越狱的ios)的智能移动设备,当然,如果其他操作系统在密码控件方面采用了与基于ios相同或者类似的处理方式,则本实施例中的智能移动设备也可以为采用其他操作系统的智能移动设备。

智能移动设备中的应用在运行过程中,如果需要用户输入密码,则应用会创建密码控件对象,并在其构建的用户界面中包含该密码控件对象对应的密码输入框。用户可以通过键盘基于该密码输入框输入密码;例如,用户可以通过软键盘的方式且基于该密码输入框输入其密码。在智能移动设备外接有键盘设备的情况下,用户也可以通过外接的键盘设备且基于该密码输入框来输入其密码。

s210、应用截取用户通过用户界面输入的密码,将截取到的密码存储于预定变量中,并在其创建的密码控件对象中存储不同于其截取的密码的假密码。

具体的,应用截取用户输入的密码有多种,本实施例可以采用密码控件对象所支持的现有的回调方法(也可以称为回调函数)来截取用户输入的密码。

在应用采用现有的方式来创建其密码控件对象的情况下,用户在输入密码的过程中,密码控件对象会接收到用户输入的密码,并存储用户输入的密码,同时,密码控件对象会在密码输入框中显示圆点或者星花等非密码的字符或者符号,以隐藏用户输入的真实的密码。

本实施例的应用可以在创建密码控件对象的过程中,对密码控件对象进行相应的扩展,如在密码控件对象的相应位置插入相应的程序代码,以在密码控件对象接收到用户输入的密码时,通过密码控件对象支持的回调方法来截取用户输入的密码,并将成功截取到的密码存储于预定变量中,同时,向密码控件对象提供假密码,使密码控件对象存储的密码为不同于用户输入的密码的假密码;同样的,本实施例的应用创建的密码控件对象会在密码输入框中显示圆点或者星花等非密码的字符或者符号,以隐藏用户输入的真实的密码。

本实施例存储于密码控件对象中的假密码可以是位数与用户输入的密码的位数相同的假密码;另外,该假密码可以为随机数或者预定字符等;这里的预定字符可以为显示在密码输入框中的圆点或者星花等。

在本实施例中,存储用户输入的密码的指定变量通常属于内存变量,这样,在应用运行结束后,内存变量会被自动释放,从而避免了应用在运行结束后,智能移动设备中仍留存有用户输入的密码的现象,消除了该留存的密码可能会被泄露的安全隐患。

s220、在应用需要使用用户输入的密码进行后续操作的情况下,应用从预定变量中获取密码。

具体的,在应用需要使用用户输入的密码进行后续的登录或者支付等操作的情况下,应用会从预定变量中获取密码,而不是从其创建的密码控件对象中获取密码;例如,在用户完成了密码的输入操作之后,用户会点击用户界面中的“登录”或者“确定”或者“支付”等按钮,在此情况下,应用从内存变量中获取用户输入的真实的密码,而不是从密码控件中获取假密码。

s230、应用将从预定变量中获取的密码作为用户输入的密码执行后续操作。

具体的,应用将其从预定变量中获取的密码作为用户输入的密码而执行相应的登录或者支付等操作。具体的登录或者支付等操作的具体实现过程在此不再详细说明。

实施例三、密码防盗方法。下面结合图3对本实施例的方法进行详细说明。

图3中,步骤1、基于越狱的ios的智能移动设备中的某应用在执行构建密码控件对象等操作后,向用户展示如图3所示的登录窗口,用户通过该登录窗口中的软键盘输入密码。

步骤2、该应用通过密码控件对象所支持的方式拦截用户通过软键盘输入的密码;例如,该应用创建的密码控件对象中包含有uitextfielddelegate中的回调方法(如shoudchangecharactersinranges),该回调方法是ios的公开接口,使用该接口不会影响到应用的审核以及上架等。

步骤3、应用将其拦截到的用户输入的真实密码存储于内存变量中。

步骤4、应用将假密码发送给密码控件对象,密码控件对象存储该假密码,即密码控件对象中的插件将假密码存储于密码控件对象中。

上述应用发送给密码控件对象的假密码可以为与用户输入的真实密码位数相同的圆点。密码控件对象可以在登录窗口的密码输入框中显示圆点,这样,可以保持本实施例和ios使用体验相一致。

需要特别说明的是,上述步骤3和步骤4通常并行执行的。

步骤5、用户在密码输入完成后,点击登录界面中的“登录”按钮,此时,应用从内存变量中获取用户输入的真实的密码执行后续的登录操作,而不再使用密码控件对象中存储的假密码执行后续的登录操作。

步骤6、恶意插件(也可以称为恶意程序或者恶意应用,如ikeymonitor)在跨应用从本应用的密码控件对象中抓取密码时,其抓取到的密码并不是用户输入的真实的密码,而是假密码,如恶意插件抓取到的密码为四个圆点等。

实施例四、密码防盗装置。下面结合图4对本实施例的装置进行详细说明。

图4中示出的密码防盗装置通常设置于智能移动设备中,且该智能移动设备可以为基于ios(包括基于越狱的ios)的智能移动设备,当然,如果其他操作系统在密码控件方面采用了与基于ios相同或者类似的处理方式,则本实施例中的智能移动设备也可以为采用其他操作系统的智能移动设备。

图4中示出的密码防盗装置主要包括:密码处理模块400以及密码获取模块410。

密码处理模块400主要适于在应用运行过程中向用户展示密码输入界面的情况下,截取用户输入的密码,将截取到的密码存储于预定变量中,并在上述应用创建的密码控件对象中存储不同于上述密码的假密码。

具体的,应用在运行过程中,如果需要用户输入密码,则应用会创建密码控件对象,并在其构建的用户界面中包含该密码控件对象对应的密码输入界面。用户可以通过键盘基于该密码输入界面输入密码;例如,用户可以通过软键盘的方式且基于该密码输入界面输入其密码。在智能移动设备外接有键盘设备的情况下,用户也可以通过外接的键盘设备且基于该密码输入界面来输入其密码。

密码处理模块400截取用户输入的密码有多种,例如,密码处理模块400可以采用密码控件对象所支持的现有的回调方法(也可以称为回调函数)来截取用户输入的密码。

在应用采用现有的方式来创建其密码控件对象的情况下,用户在输入密码的过程中,密码控件对象会接收到用户输入的密码,并存储用户输入的密码,同时,密码控件对象会在密码输入界面中显示圆点或者星花等非密码的字符或者符号,以隐藏用户输入的真实的密码。

本实施例可以在应用创建密码控件对象的过程中,对密码控件对象进行相应的扩展,如在密码控件对象的相应位置插入密码处理模块400,以在密码控件对象接收到用户输入的密码时,密码处理模块400通过密码控件对象支持的回调方法来截取用户输入的密码,并将成功截取到的密码存储于预定变量中,同时,密码处理模块400向密码控件对象提供假密码,使密码控件对象存储的密码为不同于用户输入的密码的假密码;同样的,本实施例的应用创建的密码控件对象会在密码输入界面中显示圆点或者星花等非密码的字符或者符号,以隐藏用户输入的真实的密码。

密码处理模块400存储于密码控件对象中的假密码可以是位数与用户输入的密码的位数相同的假密码;另外,该假密码可以为随机数或者预定字符等;这里的预定字符可以为显示在密码输入界面中的圆点或者星花等。

在本实施例中,存储用户输入的密码的指定变量通常属于内存变量,这样,在应用运行结束后,内存变量会被自动释放,从而避免了应用在运行结束后,智能移动设备中仍留存有用户输入的密码的现象,消除了该留存的密码可能会被泄露的安全隐患。

密码获取模块410主要适于在应用需要使用用户输入的密码进行后续操作的情况下,从上述预定变量中获取密码,并提供给应用,使应用将从预定变量中获取的密码作为用户输入的密码执行后续操作。

具体的,在应用需要使用用户输入的密码进行后续的登录或者支付等操作的情况下,密码获取模块410是从预定变量中获取密码并提供给应用,而不是从应用创建的密码控件对象中获取密码并提供给应用的;例如,在用户完成了密码的输入操作之后,用户会点击用户界面中的“登录”或者“确定”或者“支付”等按钮,在此情况下,密码获取模块410从内存变量中获取用户输入的真实的密码提供给应用,而不是从密码控件中获取假密码提供给应用;这样,应用可以将从预定变量中获取的密码作为用户输入的密码而执行相应的登录或者支付等操作。具体的登录或者支付等操作的具体实现过程在此不再详细说明。

实施例五、密码防盗装置。下面结合图5对本实施例的装置进行详细说明。

图5中示出的密码防盗装置通常设置于智能移动设备中,且该智能移动设备可以为基于ios(包括基于越狱的ios)的智能移动设备,当然,如果其他操作系统在密码控件方面采用了与基于ios相同或者类似的处理方式,则本实施例中的智能移动设备也可以为采用其他操作系统的智能移动设备。

图5中示出的密码防盗装置主要包括:界面展示模块500、密码处理模块510、密码获取模块520以及流程执行模块530。

界面展示模块500主要适于在智能移动设备中的应用的运行过程中,向用户展示包含有密码输入框的用户界面。

具体的,在智能移动设备中的应用的运行过程中,如果需要用户输入密码,则界面展示模块500会创建密码控件对象,并在其构建的用户界面中包含该密码控件对象对应的密码输入框。用户可以通过键盘基于该密码输入框输入密码;例如,用户可以通过软键盘的方式且基于该密码输入框输入其密码。在智能移动设备外接有键盘设备的情况下,用户也可以通过外接的键盘设备且基于该密码输入框来输入其密码。

密码处理模块510主要适于截取用户输入的密码,将截取到的密码存储于预定变量中,并在应用创建的密码控件对象中存储不同于所述密码的假密码。

具体的,密码处理模块510截取用户输入的密码有多种,如密码处理模块510可以采用密码控件对象所支持的现有的回调方法(也可以称为回调函数)来截取用户输入的密码。

在应用采用现有的方式来创建其密码控件对象的情况下,用户在输入密码的过程中,密码控件对象会接收到用户输入的密码,并存储用户输入的密码,同时,密码控件对象会在密码输入框中显示圆点或者星花等非密码的字符或者符号,以隐藏用户输入的真实的密码。

本实施例的界面展示模块500可以在创建密码控件对象的过程中,对密码控件对象进行相应的扩展,如在密码控件对象的相应位置插入密码处理模块510,以在密码控件对象接收到用户输入的密码时,密码处理模块510通过密码控件对象支持的回调方法来截取用户输入的密码,并将成功截取到的密码存储于预定变量中,同时,密码处理模块510向密码控件对象提供假密码,使密码控件对象中存储的密码为不同于用户输入的密码的假密码;同样的,界面展示模块500创建的密码控件对象会在密码输入框中显示圆点或者星花等非密码的字符或者符号,以隐藏用户输入的真实的密码。

密码处理模块510存储于密码控件对象中的假密码可以是位数与用户输入的密码的位数相同的假密码;另外,该假密码可以为随机数或者预定字符等;这里的预定字符可以为显示在密码输入框中的圆点或者星花等。

在本实施例中,存储用户输入的密码的指定变量通常属于内存变量,这样,在应用运行结束后,内存变量会被自动释放,从而避免了应用在运行结束后,智能移动设备中仍留存有用户输入的密码的现象,消除了该留存的密码可能会被泄露的安全隐患。

密码获取模块520主要适于在应用需要使用用户输入的密码进行后续操作的情况下,从预定变量中获取密码。

具体的,在应用需要使用用户输入的密码进行后续的登录或者支付等操作的情况下,密码获取模块520会从预定变量中获取密码,而不是从界面展示模块500创建的密码控件对象中获取密码;例如,在用户完成了密码的输入操作之后,用户会点击用户界面中的“登录”或者“确定”或者“支付”等按钮,在此情况下,密码获取模块520从内存变量中获取用户输入的真实的密码,而不是从密码控件中获取假密码。

流程执行模块530主要适于将从预定变量中获取的密码作为用户输入的密码执行后续操作。

具体的,流程执行模块530将密码获取模块520从预定变量中获取的密码作为用户输入的密码而执行相应的登录或者支付等操作。具体的登录或者支付等操作的具体实现过程在此不再详细说明。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的具体描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的密码防盗装置中的一些或全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是,上述实施例是对本发明进行说明,而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或者步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序,可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1