导航:首页 > 文档加密 > 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加密相关的资料

热点内容
解压的ipa重新打包 浏览:140
程序员那么可爱vip版 浏览:235
程序员怎么升职 浏览:241
图形化命令按钮vb 浏览:985
vcu盘加密怎么设置 浏览:412
如何加密备份微信聊天记录 浏览:527
安卓手机如何模拟键盘 浏览:930
查看dns地址命令 浏览:767
android录屏工具 浏览:840
成都互动直播系统源码 浏览:955
usb蓝牙android 浏览:409
服务器显示error1什么意思 浏览:710
python代码精简 浏览:459
文件加密了怎么找到了 浏览:196
jellyfin插件怎么选择主服务器 浏览:839
asp用户注册源码 浏览:48
什么是照片压缩文件 浏览:393
java调用js代码 浏览:981
昆山市民app怎么修改身份信息 浏览:779
php登陆次数 浏览:746