Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » UltraLite - C 及 C++ 编程 » 应用程序开发 » 开发用于 Palm OS 的 UltraLite 应用程序 » 在 UltraLite Palm 应用程序中维护状态(不建议使用)

 

在 Palm OS 上保存、检索和清除加密密钥

在 Palm OS 上,每当用户切换到其它应用程序,系统都会自动关闭原来的应用程序。因此,如果在 Palm OS 上加密 UltraLite 数据库,则每当 用户切换回应用程序时,都会提示用户重新输入密钥。

♦  避免重新输入加密密钥
  1. 将加密密钥作为 Palm 功能保存在动态内存中。

    功能的索引是根据创建者和功能编号编制的。随后,应用程序会接受其创建者 ID 或 NULL 以及功能编号或 NULL,以保存和检索加密密钥。

  2. 编写应用程序,使其在重新启动时检索密钥。

    注意

    因为在设备重置时会清除加密密钥,所以,此时密钥的检索将失败。在这种情况下会提示用户重新输入密钥。

    以下示例代码(嵌入式 SQL)演示如何保存和检索加密密钥:

    startupRoutine() {
       ul_char buffer[MAX_PWD];
    
       if( !ULRetrieveEncryptionKey(
              buffer, MAX_PWD, NULL, NULL  ) ){
          // prompt user for key
          userPrompt( buffer, MAX_PWD );
    
          if( !ULSaveEncryptionKey( buffer, NULL, NULL ) ) {
             // inform user save failed
          }
       }
    }
  3. 使用菜单项清除加密密钥,从而保证设备安全。

    以下代码示例说明了满足这一目标的方法:

    case MenuItemClear
        ULClearEncryptionKey( NULL, NULL );
        break;
另请参见