導航:首頁 > 文檔加密 > sharepreference加密

sharepreference加密

發布時間:2022-01-30 13:58:13

Ⅰ 安卓用sharepreferences怎麼實現婧投寥dittext編輯內容

android 平台給我們提供了一個SharedPreferences類,它是一個輕量級的存儲類,特別適合用於保存軟體配置參數。使用 SharedPreferences保存數據,其背後是用xml文件存放數據,文件存放在/data/data/<package name>/shared_prefs目錄下:
SharedPreferences sharedPreferences = getSharedPreferences("ljq", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//獲取編輯器
editor.putString("name", "林計欽");
editor.putInt("age", 24);
editor.commit();//提交修改
生成的ljq.xml文件內容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">林計欽</string>
<int name="age" value="24" />
</map>
因為SharedPreferences背後是使用xml文件保存數據,getSharedPreferences(name,mode)方法的第一個參數用於指定該文件的名稱,名稱不用帶後綴,後綴會由Android自動加上。方法的第二個參數指定文件的操作模式,共有四種操作模式,這四種模式前面介紹使用文件方式保存數據時已經講解過。如果希望SharedPreferences背後使用的xml文件能被其他應用讀和寫,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE許可權。
另外Activity還提供了另一個getPreferences(mode)方法操作SharedPreferences,這個方法默認使用當前類不帶包名的類名作為文件的名稱。
訪問SharedPreferences中的數據
訪問SharedPreferences中的數據代碼如下:
SharedPreferences sharedPreferences = getSharedPreferences("ljq", Context.MODE_PRIVATE);
//getString()第二個參數為預設值,如果preference中不存在該key,將返回預設值
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 1);
如果訪問其他應用中的Preference,前提條件是:該preference創建時指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE許可權。
如:有個<package name>為com.ljq.action的應用使用下面語句創建了preference。
getSharedPreferences("ljq", Context.MODE_WORLD_READABLE);
其他應用要訪問上面應用的preference,首先需要創建上面應用的Context,然後通過Context 訪問preference ,訪問preference時會在應用所在包下的shared_prefs目錄找到preference :
Context otherAppsContext = createPackageContext("com.ljq.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("ljq", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);
如果不通過創建Context訪問其他應用的preference,也可以以讀取xml文件方式直接訪問其他應用preference對應的xml文件,如:
File xmlFile = new File("/data/data/<package name>/shared_prefs/itcast.xml");//<package name>應替換成應用的包名

Ⅱ 2.3 的 SharePreference 文件存在什麼位置

SharePreference是一種輕量級的數據存儲方式。內部實現是基於XML的Key-Value方式完成的。通常用來存儲程序的配置信息。
今天寫了一個小Demo,用SharePreference來保存用戶的用戶名和登錄密碼,這里只是簡單的存儲,並沒有做加密處理。實際應用時記得加密。

定義SharePreference的四個步驟:
1、通過getSharePreference(key,mode) 獲得對象
2、利用ShareLPreference的editor()方法來獲取editor對象
3、利用editor的putString()方法將鍵值對數據存儲進去
4、利用editor的commit()方法將數據提交到SharePreference內

舉個例子:
1
privatebooleansaveData(){
2
SharedPreferences preference = getSharedPreferences("user", Context.MODE_PRIVATE);
3
Editor edit = preference.edit();
4
<span style="white-space:pre">< /span>edit.putString("userName", loginUserName.getText().toString().trim());
5
<span style="white-space:pre">< /span>edit.putString("password", loginPassword.getText().toString().trim());
6
<span style="white-space:pre">< /span>edit.commit();
7
<span style="white-space:pre">< /span>returntrue;
8
}
這個例子中創建了一個名為user的SharePreference對象,在內部的文件存儲名為user.xml
調用SharePreference的幾個步驟:
1、通過getSharePreference方法獲得SharePreference對象
2、使用對象的getString(key, default value)方式來獲得SharePreference中的數據
這里需要注意的是,當SharePreference中沒有這個key對應的value的時候,它也不會報錯,會返回一個none,所以,建議事先定義一個default value值,方便調試。

舉個例子:
1
SharedPreferences preference = getSharedPreferences("user", Context.MODE_PRIVATE);
2
String userName = preference.getString("userName", "").trim();
3
String password = preference.getString("password", "").trim();

刪除SharePreference的方法:
當使用周期結束,選擇將數據對象刪除時,是刪除的整一個文件,注意數據存儲的位置在data/data/package.name下,所以刪除的操作如下:
1
File file= newFile("/data/data/"+getPackageName().toString()+"/shared_prefs","user.xml");
2
if(file.exists()){
3
file.delete();
4
}
注意new File(path, file name) 前一個參數是文件路徑,後一個參數是文件名。在前面已經說過,之前我們創建的SharePreference 對象的名稱是user.xml

Ⅲ 如何給區域網內的共享文件夾加密

打開「我的電腦」,點擊「工具」菜單,選擇「文件夾選項」命令:在打開的「文件夾選項」對話框中,單擊「查看」選項卡:取消「使用簡單共享(推薦)」前的復選框,最後單擊確定按鈕即可。 接下來我們給共享的目錄分配一個共享帳號。在「本地用戶和組」中新建一用戶「shareuser,注意這個帳號密碼不能為空,同時不要去改這個帳號的許可權,用默認的普通組user的許可權即可:然後就是設置安全的共享了。右擊需要共享的文件夾,選擇「共享和安全」命令:在打開的「屬性」對話框中選擇「共享」選項卡,再單擊「共享此文件夾」單選項,接著單擊下面的「許可權」按鈕:在彈出的「許可權」對話框中刪除已有的「everyone」用戶,添加剛剛設置的「shareuser」帳號:最後單擊「確定」按鈕保存設置即可。以後,任何人能看到這個共享文件夾,但打開則需要密碼。 希望能幫到你 謝謝

Ⅳ 我在SharedPreferences裡面保存的明文密碼安全么

就算用md5或者sha加密了,通過讀取xml文件。也可以得到我加密過的字元串,然後再反編譯我的代碼,就知道我如何組織的密碼格式,然後就可以窮舉,看哪種組合跟存在xml文件中的字元串相同,就是密碼了,我想是不是可以用NDK,把密碼的組織方法封裝在.so中,應該不會被反編譯吧,不知道這個想法可不可以。因為這次的項目,要求軟體密碼一定不能被破解,不然後果很嚴重。

Ⅳ 怎麼可以把sqlite資料庫和sharedpreferences文件加密

你可以使用超級加密3000試試。

超級加密3000採用國際上成熟的加密演算法和安全快速的加密方法,可以有效保障數據安全!

具體操作方法:

1下載安裝超級加密3000。

2 然後在需要加密的文件上單擊滑鼠右鍵選擇加密。

3 在彈出的文件加密窗口中設置文件加密密碼就OK了。

超級加密3000的下載地址你可以在網路上搜索超級加密3000,第一個就是。

Ⅵ 安卓sharepreference能跨進程共享數據嗎

使用的SharePreferences
都是使用模式Context.MODE_PRIVATE,這樣就不能被其他程序訪問到,用不同的模式可以實現跨進程,跨應用獲取該文件內容

String content = null;
Context c = null;
try {
c = this.createPackageContext(PREFERENCE_PACKAGE,
Context.CONTEXT_IGNORE_SECURITY);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d(TAG, "" + c);
SharedPreferences sh = c.getSharedPreferences(PREFERENCE_NAME, Context.MODE_WORLD_READABLE | Context.MODE_MULTI_PROCESS);
content = sh.getString("tr069token3", null);
在Android 4.0上通過以上方法可以跨進程訪問,之前沒有加入Context.MODE_MULTI_PROCESS參數,導致不能獲取到修改後的數據。在2.3的室內機上不能獲取,沒有許可權。

Ⅶ SharePreference 的寫入和讀取已經有所了解了,但具體操作上還存在不少問題,望耐心往下看,期待你的指導

{

privateButtonbt;

privatebooleanwrite=true;

privateTestHandlerhandler;


@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

handler=newTestHandler();

setContentView(R.layout.activity_test);

bt=(Button)findViewById(R.id.bt);

bt.setOnClickListener(newOnClickListener(){


@Override

publicvoidonClick(Viewv){

//TODOAuto-generatedmethodstub

if(write){

handler.sendEmptyMessage(2);

}else{

handler.sendEmptyMessage(1);

}

write=!write;

if(write){

bt.setText("Write");

}else{

bt.setText("Read");

}

}

});

}


publicStringread(StringfromTarghet,Stringkeys){

Stringres="";

SharedPreferencespreference=getSharedPreferences(fromTarghet,Context.MODE_PRIVATE);

res=preference.getString(keys,"#A1F1807F08");

Log.i("Test","readkey"+keys+",value:"+res);

returnres;

}


publicvoidwrite(Stringtotarget,Stringss){

Log.i("Test","writetarget"+totarget+"keymp1,value:"+ss);

SharedPreferencespreference=getSharedPreferences(totarget,Context.MODE_PRIVATE);

Editoreditor=preference.edit();

editor.putString("mp1",ss);

editor.commit();

}

{


@Override

publicvoidhandleMessage(Messagemsg){

//TODOAuto-generatedmethodstub

switch(msg.what){

case1:

read("Test","mp2");

break;

case2:

write("Test","writetest.");

break;

default:

break;

}

}

}

}

當case1裡面的參數是mp1,即write方法中editor寫入的preference時,點擊按鈕write後再點擊read的log如下:

01-0116:26:49.104:I/Test(15122):writetargetTestkeymp1,value:writetest.

01-0116:26:53.614:I/Test(15122):readkeymp1,value:writetest.

此時讀取出來的值就是你寫入的值。

如果修改為mp2,同樣的操作,log如下:

01-0116:27:40.424:I/Test(15289):writetargetTestkeymp1,value:writetest.

01-0116:27:42.404:I/Test(15289):readkeymp2,value:#A1F1807F08

read出來的值就是默認值。

我這樣寫在運行的時候沒有問題,也沒有報錯,你說的估計是你在線程中調用的時候需要方法是static的,這和SharedPreference沒有關系。只要是你的方案設計。

Ⅷ 如何用android sharedpreferences鍸ist集合

需要加密的,sharedperfreference在Root的手機里可以直接adbpull下來看,里邊其實就是個xml,存儲的明文,存用戶名密碼自己加下密吧。用戶可以在設置--應用管理里清除數據來清除sharedpreferences.

Ⅸ 關於android開發的sharePreferences讀取問題

你那個應該只是交你讀取的方法吧,代碼右邊不是有個代碼語言嗎,選一下就可以了,我下面的代碼是包含了保存和讀取

java">publicbooleanondrain_flag=true;
publicbooleanflag=true;
publicintheated=0;
publicStringmac="";
privateConfiguration(){
}

/**
*單態
*/
(){
if(instance==null){
instance=newConfiguration();
}
returninstance;
}

/**
*儲存配置文件信息
*
*@paramcontext
*上下文
*/
publicvoidsaveMe(Contextcontext){
SharedPreferencespreferences=context.getSharedPreferences(
SETTING_INFOS,Context.MODE_PRIVATE);
EditorpreferencesEditor=preferences.edit();
preferencesEditor.putBoolean("flag",flag);
preferencesEditor.putInt("heated",heated);
preferencesEditor.putString("mac",mac);
preferencesEditor.commit();
}

/**
*獲取配置文件信息
*
*@paramcontext
*上下文
*/
publicvoidreadMe(Contextcontext){

SharedPreferencespreferences=context.getSharedPreferences(
SETTING_INFOS,Context.MODE_PRIVATE);
flag=preferences.getBoolean("flag",flag);
heated=preferences.getInt("heatede",
heated);
mac=preferences.getString("mac",mac);
}

Ⅹ 請詳細的講一下ordinary share 與 preference share的區別和特點

ordinary share的dividends隨著公司的業績波動,而preference share的dividends是固定的。即使公司業績下滑或虧損,股份持有者依然可以拿錢,但是一般不參與分紅。簡單的說,os收益也許能比ps高,但是,風險更大。

閱讀全文

與sharepreference加密相關的資料

熱點內容
伺服器顯示error1什麼意思 瀏覽:706
python代碼精簡 瀏覽:457
文件加密了怎麼找到了 瀏覽:193
jellyfin插件怎麼選擇主伺服器 瀏覽:836
asp用戶注冊源碼 瀏覽:48
什麼是照片壓縮文件 瀏覽:392
java調用js代碼 瀏覽:979
崑山市民app怎麼修改身份信息 瀏覽:779
php登陸次數 瀏覽:744
python字元轉成數字 瀏覽:822
海川用的是什麼伺服器 瀏覽:376
口才是練出來的pdf 瀏覽:458
雲伺服器哪個公司性價比高 瀏覽:517
源碼論壇打包 瀏覽:558
php怎麼做成word 瀏覽:692
python批量生成密鑰 瀏覽:492
程序員要不要考社區人員 瀏覽:150
app的錢怎麼充q幣 瀏覽:814
android銀行卡識別 瀏覽:756
怎麼在app投放廣告 瀏覽:11